it-swarm.com.de

Längen von mehrdimensionalen Arrays in Java

Wie finde ich die Länge eines mehrdimensionalen Arrays mit nicht gleichen Indizes?

Zum Beispiel habe ich int[][] pathList = new int[6][4]

Ohne die Indizes wirklich hart zu codieren, muss ich die '6' und die '4' finden.

Ich kann die 6 mit pathList.length finden, aber wie bekomme ich die '4'?

25

Dies gibt Ihnen die Länge des Arrays am Index i

pathList[i].length

Es ist wichtig zu beachten, dass im Gegensatz zu C oder C++ die Länge der Elemente eines zweidimensionalen Arrays in Java nicht gleich sein muss. Wenn zum Beispiel pathList gleich new int[6][] instanziiert wird, kann es 6 int []-Instanzen enthalten, von denen jede eine andere Länge haben kann.


Wenn Sie also Arrays so erstellen, wie Sie es in Ihrer Frage gezeigt haben, können Sie dies auch tun

 pathList[0].length

da Sie wissen, dass sie alle die gleiche Länge haben. In den anderen Fällen müssen Sie spezifisch für Ihre Anwendung definieren, was Länge der zweiten Dimension bedeutet - es kann das Maximum der Längen aller Elemente oder das Minimum sein. In den meisten Fällen müssen Sie alle Elemente iterieren und ihre Länge lesen, um eine Entscheidung zu treffen:

for(int i = 0; i < pathList.length; i++)
{
    int currLen = pathList[i].length;
}
55

Dies ist für ein 3-dimensionales Array.

 int x[][][]=new int[5][8][10];
        System.out.println(x.length+" "+x[1].length+" "+x[0][1].length);

AUSGABE: 5 8 10

11

Java hat mehrdimensionale Arrays "gezackt", was bedeutet, dass jede "Zeile" in Ihrem zweidimensionalen Array eine unterschiedliche Anzahl von Komponenten haben kann. Wenn Sie davon ausgehen können, dass jede Zeile die gleiche Anzahl von Komponenten enthält, verwenden Sie Folgendes:

pathList[0].length;

Andernfalls müssen Sie iterieren:

int maxRowLength = 0;
for (int i = 0; i < pathList.length; i++) {
    if (maxRowLength < pathList[i].length) {
        maxRowLength = pathList[i].length;
    }
}
8
Nathan Ryan

Für 2 D-Reihe: -

int x[][] = new int[6][12];
System.out.println(x.length + " " + x[1].length);

AUSGABE: 6 12

4
Nikhil Kumar

In Java können wir Arrays von Arrays definieren, die als mehrdimensionale Arrays bezeichnet werden. Mit Arrays von Arrays meinen wir, dass ein einzelnes Element unseres Arrays wieder ein Array ist (in Java kann es mehrere Längen geben) Subarray der gleichen Größe können wir verwenden:

int[][]a=new int[3][3];//let a[][] be my array
a.length will work.   //a is an object of proxy class and length is its property.

Wenn Sie jedoch Subarrays unterschiedlicher Größe haben, müssen Sie diese iterieren.

for(i=0;i<a.length;i++)
        int cur_size=a[i].length;
1
Vaibhav Grover

Länge des 3D-Arrays

int[][][] a = new int[2][3][7];
int length=0;
for(int[][] i:a){
    for(int j[]:i){
        length+=j.length;
    }   
}           
System.out.println(length);
0