簡體   English   中英

arraylist整數中出現意外結果-pde

[英]Unexpected result in arraylist integer - pde

我編寫了一個將2d列表中的數組元素求和並添加到1d列表中的函數:

  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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM