在java中初始化二维数组

时间:2015-02-11 15:51:47

标签: java arrays eclipse 2d

有点困惑为什么这不起作用可以使用一些帮助,我想将所有值设置为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;
    }
}

6 个答案:

答案 0 :(得分:1)

您必须确保在内部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;
        }
    }

编辑 :您的代码仍然有效,但是按照惯例,您仍然应该这样做。

答案 1 :(得分:0)

您实际上并不需要明确设置任何值。

原始boolean默认为false

因此:

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

<强>输出

false

答案 2 :(得分:0)

BY defaultif u初始化一个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;
                }
            }

答案 3 :(得分:0)

您的代码应该可以运行,但这是填充2D数组的另一种解决方案:

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

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

答案 4 :(得分:0)

另一种理解迭代多维数组的方法就是这样。

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

答案 5 :(得分:-1)

如果您已经给出了一个恒定大小的数组,请避免使用.length并改为使用常量。

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