Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java arraylist integer中出现意外结果-pde_Java_Arrays_Arraylist_Integer_Processing - Fatal编程技术网

Java arraylist integer中出现意外结果-pde

Java arraylist integer中出现意外结果-pde,java,arrays,arraylist,integer,processing,Java,Arrays,Arraylist,Integer,Processing,我编写了一个函数,将二维列表中的数组元素相加,并将它们添加到一维列表中: ArrayList<Integer> sumList(ArrayList<int[][]> list,int side){ ArrayList<Integer> sums= new ArrayList<Integer>(); for(int[][] array : list){ int arraySum = 0; //arraySum +=

我编写了一个函数,将二维列表中的数组元素相加,并将它们添加到一维列表中:

  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[]

但是,当我在循环之外添加另一个元素时,在这种情况下,它是零,结果会是好的,我仍然不确定它是好的。在此之后的println结果:

[-232,-232,-232,0]


我完全不明白这一点,因为我很确定这个函数没有任何问题,因为我单独测试过,它工作得很好。这不可能是arraylist,因为我用c编写了整个项目,而且效果也很好。

这里有一个方法,可以收集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;
    }

你通过的名单有多大?@NirajPatel每次都不一样。这取决于决策树。您是否有可能运行多个线程?理想情况下,提供一个演示问题的示例…您可以尝试提供一个我前面提到的示例。如果我们能复制它,我相信我们能解决它。不清楚代码中注释掉的行是关于什么的。你确定当你运行代码并生成输出时,它们仍然被注释掉了吗?请发布一个我们可以复制和粘贴以自己运行的日志。具体来说,您需要硬编码一些输入并调用此函数。如果我们看不到您的输入,那么将很难帮助您。