この質問は、この質問のフォローアップです..
int tmp;
int[][] Key = new int [TopSubKey.length+BottomSubKey.length][TopSubKey.length];
int[][] KeyChoiceTable = {{14,17,11,24,1,5},{3,28,15,6,21,10},{23,19,12,4,26,8}}
int [][] KeySelection = new int [KeyChoiceTable.length][KeyChoiceTable[0].length];
List<int [][]> list = new ArrayList<int [][]>();
int row,col,x;
for(int l =0;l<3;l++) {
for(int i=0;i<KeyChoiceTable.length;i++){
for(int j=0;j<KeyChoiceTable[0].length;j++){
row = 0;
col = 0;
x = KeyChoiceTable[i][j];
while(x>7){x=x-7; row=row+1;}
col = x-1;
KeySelection[i][j] = Key[row][col];
}
}
list.add(KeySelection);
System.out.print(list.size());
}
問題はとてもばかげているように見えますが、私を殺しているからです。
Lopp は 2 回実行されます。最後の行から期待しているのは、各ループがインデックス 0 のリストに 2D 配列を格納することです。したがって、2 番目のループはインデックス 1 のリストに 2 番目の 2D キーセレクションを格納します。追加するたびにArraylist(リスト)への新しい追加により、他のすべてが上書きされ、すべてのエントリが最後と同じになります..一日中試してみましたが、ベクトルまたはスタックを使用しても同じです..何が起こっているのですか?