我正在尝试查找 3D 数组中特定元素的长度。我正在尝试这样做:
if(grid[x][y][0].size<5)
而且我似乎无法找出正确的方法来做到这一点。谢谢!
编辑:不幸的是 .length 不起作用“长度无法解析或不是字段”。此外,元素是对象。
有人要求澄清,我想知道数组的第 3 个元素中是否有少于 5 个对象。
谢谢!
我正在尝试查找 3D 数组中特定元素的长度。我正在尝试这样做:
if(grid[x][y][0].size<5)
而且我似乎无法找出正确的方法来做到这一点。谢谢!
编辑:不幸的是 .length 不起作用“长度无法解析或不是字段”。此外,元素是对象。
有人要求澄清,我想知道数组的第 3 个元素中是否有少于 5 个对象。
谢谢!
您将需要使用而不是大小。
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
,因为你正在访问一个特定的元素。
正确的表达是
grid[x][y].length
你要找的是这个:
if(grid[x][y].length < 5){ .... }
什么样的三维数组?如果它是 String[][][] 或 int[][][] 或类似的东西,你应该尝试grid[x][y].length
使用 size。
它给出了哪个错误?