簡體   English   中英

Java-在2D數組中插入隨機排列的列表

[英]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.

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