Я пишу метод, который создает ArrayList S_Comp
, который содержит все элементы, которые включены в массив allNodes
, но которые не включены в ArrayList solution
(все элементы которого включены в allNodes
).Когда я печатаю solution
и allNodes
, я легко вижу, что S_Comp
должен содержать 7 элементов.Однако все элементы из allNodes
добавляются в S_Comp
, а также элементы, включенные в nodesS
.В чем может быть проблема здесь?
Ниже вы можете найти мой код для метода.Перед вызовом этого метода S_Comp
был инициализирован только как new ArrayList<MyNodesData>
, поэтому его размер равен 0.
public void generateSComp(DataFile testDataFile, ArrayList<Route> solution, ArrayList<MyNodesData> S_Comp)
{
System.out.println("solution: " + solution.toString());
ArrayList<MyNodesData> nodesS = getNodesS(solution);
System.out.println("NodesS: " + nodesS.toString());
System.out.println("Size nodesS: " + nodesS.size());
MyNodesData[] allNodes = testDataFile.getNodes();
System.out.println("allNodes: " + Arrays.toString(allNodes));
for(MyNodesData node : allNodes)
{
if(!nodesS.contains(node))
{
System.out.println(node.toShortString() + " is not in nodesS");
S_Comp.add(node);
}
}