查找多维数组* java *的特定元素的长度

时间:2013-09-10 23:35:37

标签: java arrays multidimensional-array 3d size

我试图找到3D数组中特定元素的长度。我想这样做:


if(grid[x][y][0].size<5)


我似乎无法弄清楚这样做的正确方法。谢谢!

编辑:不幸的是.length无效“长度无法解析或不是字段”。此外,元素是对象。

有些人要求澄清,我想知道数组的第3个元素中是否少于5个对象。

谢谢!

4 个答案:

答案 0 :(得分:1)

您需要使用而不是尺寸。

grid[x][y].length

但是,您必须记住,您只能获得数组[z]部分的大小。

如果你想获得网格中“单元格”的数量,你需要加上所有的网格元素。

totalsize = grid.length*grid[x].length*grid[x][y].length;

即使这样,你必须保证x y and z处数组的大小在所有元素之间保持不变。

请记住这些是数组的数组,并且它们不一致。

例如,

public static void main(String[] args) {

    int[][] foo = new int[][] {
        new int[] { 1, 2, 3 },
        new int[] { 1, 2, 3, 4},
    };

    System.out.println(foo.length); //2
    System.out.println(foo[0].length); //3
    System.out.println(foo[1].length); //4
}

...危险

int nir[][] = new int[5][];
nir[0] = new int[5];
nir[1] = new int[3];
System.out.println(nir[0].length); // 5
System.out.println(nir[1].length); // 3
System.out.println(nir[2].length); // Null pointer exception

每行的列长度不同。如果您使用固定大小的2D数组支持某些数据,则在包装类中为getter提供固定值。

PS。 您无法执行grid[x][y][0].length,因为您正在访问特定元素。

答案 1 :(得分:0)

正确的表达是

grid[x][y].length

答案 2 :(得分:0)

您正在寻找的是:

if(grid[x][y].length < 5){ .... }

答案 3 :(得分:0)

哪种三维数组?如果它是String [] [] []或int [] [] []或类似的东西,你应该尝试grid[x][y].length而不是大小。

它给出了哪个错误?