簡體   English   中英

查找多維數組* java *的特定元素的長度

[英]Find length of specific element of multidimensional array *java*

我正在嘗試查找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;

即使那樣,您也必須保證在所有元素之間xy 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數組支持某些數據,請在包裝器類中為固定值提供吸氣劑。

PS。 您無法執行grid[x][y][0].length因為您正在訪問特定元素。

正確的表達是

grid[x][y].length

您正在尋找的是:

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

哪種三維數組? 如果它是String [] [] []或int [] [] []或類似的東西,則應嘗試使用grid[x][y].length代替size。

它給出哪個錯誤?

暫無
暫無

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

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