我编写了一个函数,它将数组的元素汇总到一个2d列表中,并将它们添加到一个一维列表中:
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 -223、-232 -232 -223、-223、-223、-223、-223 -223 -219、-219、-219 -219、-214、-214、-214、-214、-214-214、-14、-14 -14、-10、-10、-10、-10、-10、-10、-10、-10-10、-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 []
但是,当我在循环之外添加另一个元素(在本例中为0)时,结果将是可以的(我仍然不确定它是否是)。println的结果在此之后:
-232,-232,-232,0
我对此完全感到困惑,因为我很确定这个函数没有任何问题,因为我单独进行了测试,并且运行得很好。它不可能是数组,因为我用c#编写了整个项目,而且它也运行得很好。
发布于 2017-01-22 07:52:12
下面是一个收集2d数组中所有整数并将它们放入列表的方法。
public static List<Integer> listElements(int[][] array) {
List<Integer> list = new ArrayList<Integer>();
for (int[] subArray : array) {
IntStream.of(subArray).forEach(i -> list.add(i));
}
return list;
}https://stackoverflow.com/questions/41771609
复制相似问题