簡體   English   中英

用Java初始化二維數組

[英]Initializing a 2-D Array in java

有點困惑為什么這不起作用可以使用一點幫助,我想將所有值設置為false:

boolean[][] seatArray = new boolean[4][4];

for(int x = 0; x < seatArray.length; x++){
    for(int y = 0; y < seatArray.length; y++){
        seatArray[x][y] = false;
    }
}

您必須確保迭代內部for循環中的正確數組元素,以將每個值設置為false 嘗試這個:

boolean[][] seatArray = new boolean[4][4];

    for(int x = 0; x < seatArray.length; x++){
        for(int y = 0; y < seatArray[x].length; y++){
            seatArray[x][y] = false;
        }
    }

編輯 :您的代碼應該仍然有效,但對於慣例,您仍然應該這樣做。

您實際上不需要顯式設置任何值。

原始boolean值默認為false

因此:

boolean[][] seatArray = new boolean[4][4];
System.out.println(seatArray[0][1]);

產量

false

通過defaultif你初始化一個2D布爾數組,它將包含值為false讓我們說你有一個二維數組

boolean[][] seatArray=new boolean[4][4];//all the value will be false by default
so it is a 4*4 matrix

boolean[0] represents the the 1st row i.e Lets say it contains value like {true,true,true,true} if you need the value in individual cell you need to iterate 2 for each loop like

    for (boolean[] rowData: seatArray){
                for(int cellData: rowData)
                {
System.out.printn("the indiviual data is" +cellData);
                 cellData=Boolean.false;
                }
            }

您的代碼應該可以工作,但是這里是填充2D數組的另一種解決方案:

    boolean[][] b = new boolean[4][4];

    for (int i = 0; i < b.length; i++)
        Arrays.fill(b[i], false);

像這樣遍歷多維數組的另一種方法。

boolean[][] seatArray = new boolean[4][4];

//Foreach row in seatArray
for(boolean[] arr : seatArray){
    for(int i = 0; i < arr.length; i ++){
        arr[i] = false;
    }
}

如果已經給出了一個恆定大小的數組,請避免使用.length並使用常量。

for(int x = 0; x < 4; x++){for(int y = 0; y < 4; y++){ ... ... }}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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