2017-01-20 4 views
0

Iが2Dリスト内の配列の要素を合計し、1Dリストに追加機能を記述します予期しない結果 - 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 ] [0、-10、-10] -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 []

しかし、私は、結果はOKになります(それはゼロです。この場合には)、ループの外に別の要素を追加したときに(私はまだわからないんだけど、それはあります) 。私は関数は問題ありません確信しているので

[-232、-232、-232、0]

私はこのことについて完全に困惑している:この後のprintln結果私は個別にテストしたので、うまくいきました。そして、それは私がC#でプロジェクト全体を書いたarraylistの原因ではないかもしれません。

+0

あなたが渡しているリストのサイズは? –

+0

@NirajPatel毎回違います。それは決定木に依存します。 –

+1

万が一、複数のスレッドが実行されていますか?理想的には、問題を示す[mcve]を提供してください... –

答えて

1

2次元配列のすべての整数を集めてリストに入れる方法です。

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