[英]Java - insert shuffled list inside 2D array
如何將隨機排列的列表插入2D數組中?
ArrayList<Integer> list = new ArrayList<Integer>();
for (int i=1; i<17; i++) {
list.add(new Integer(i));
}
Collections.shuffle(list);
for (int c=0; c<16 ; c++) {
String number;
number = Integer.toString(list.get(c));
for (int i=0; i<4; i++) {
for(int j=0; j<4; j++) {
JButton btnmix = new JButton();
btnBotonMix[i][j] = btnmix;
btnBotonMix[i][j].setText(number);
}
}
}
我得到了最后的印刷號碼:
[0][0] 2 [0][0] 4
[0][1] 2 [0][1] 16
[0][2] 2 [0][2] 12
[0][3] 2 [0][3] 6
[1][0] 2 [1][0] 11
[1][1] 2 [1][1] 7
[1][2] 2 [1][2] 3
[1][3] 2 What Im trying to acomplish ----> [1][3] 14
[2][0] 2 [2][0] 5
[2][1] 2 [2][1] 15
[2][2] 2 [2][2] 9
[2][3] 2 [2][3] 10
[3][0] 2 [3][0] 13
[3][1] 2 [3][1] 1
[3][2] 2 [3][2] 8
[3][3] 2 [3][3] 2
但是當我在cicle中打印我的數字變量時,我的所有非重復洗牌列表都處於混亂狀態(這意味着)
您將每個按鈕設置了16次,因為您在3個for循環中包含了代碼。 外部for循環的每次迭代,按鈕文本都會設置為另一個數字,但迭代中的所有按鈕都是相同的。 因此最終將是最后一次迭代中的數字。
嘗試以下方法:
int c = 0;
for (int i=0; i<4; i++) {
for(int j=0; j<4; j++){
String number = Integer.toString(list.get(c));
c++;
JButton btnmix = new JButton();
btnBotonMix[i][j] = btnmix;
btnBotonMix[i][j].setText(number);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.