2017-01-20 76 views
0

我寫的總結了數組的元素在2D列表的功能,並增加他們在一維列表:意外的結果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 []

但當我添加其他元素的循環之外(在這種情況下,它是零),其結果將是OK(我仍然不知道它是) 。在此之後的println結果:

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

我完全糊塗了這個,因爲我敢肯定的功能沒有任何問題因爲我個人測試,它的工作很好。而且它不可能是我用c#編寫整個項目的數組列表原因,它的工作也很好。

+0

傳遞的列表大小是多少? –

+0

@NirajPatel每次都不一樣。這取決於決策樹。 –

+1

你有多個線程可以運行嗎?理想情況下,提供[mcve]展示問題... –

回答

1

這裏是一個方法,它收集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; 
    }