Я пишу функцию, которая суммирует элементы массивов в 2d списка и добавить их в 1d списке:Неожиданный результат в ArrayList целое - PDE
ArrayList<Integer> sumList(ArrayList<int[][]> list,int side){
ArrayList<Integer> sums= new ArrayList<Integer>();
for(int[][] array : list){
int arraySum = 0;
//arraySum += CalcMove(array,side);
for(int i = 0; i < 8; i++){
for(int j = 0; j < 8; j++){
arraySum+=array[i][j];
}
}
sums.add(arraySum);
//println(arraySum);
}
println(sums);
//sums.add(0);
//println(sums);
return sums;
}
Проблема заключается в том, результат совершенно не имеет значения, неоднозначно и даже не в списке. Println Результат:
[-232, -232, -232] -232 [-232, -232, -232] -232 [-223, -223, -223] -223 [ -223, -223, -223, -223] -223 [-219, -219, -219] -219 [-214, -214, -214] -214 [-14, -14, -14 ] -14 [-10, -10, -10] -10 [-5, -5, -5] -5 [-4, -4, -4, -4] -4 [-4, -4, -4] -4, -4, -4] -4 [-4, -4, -4, -4] -4 [-4, -4, -4, -4] -4 [-4, -4 , -4, -4] -4 [-4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4 , -4, -4] -4 []
Но когда я добавить еще один элемент вне петель (в данном случае это ноль), то результат будет ОК (я до сих пор не уверен, что это) , Println результат после этого:
[-232, -232, -232, 0]
Я совершенно запутался об этом, так как я уверен, что функция не имеет каких-либо проблем потому что я тестировал индивидуально, и все работает отлично. И это не могло быть причиной arraylist, я написал весь проект в C#, и он тоже работал отлично.
Каков размер списка, которую вы передаете? –
@NirajPatel Каждый раз разные. это зависит от деревьев решений. –
У вас есть несколько потоков, запущенных на любой случай? В идеале предоставьте [mcve], демонстрирующую проблему ... –