Laenge von mehr dimensionalen arrays

poku17

Mitglied
Hallo,
ich wuerde gerne wissen, wie ich bei java von einem mehr dimensionalen Array mit unbekannt großen Feldern die Laenge ermitteln kann ? denn:

Java:
 public static void main(String[] args) {
   int[][][] ints = new int[1][2][3];
   System.out.println(ints.length);
   }
 }

gibt immer nur die Größe des ersten Feldes zurueck... in diesem beispiel "1". Ein design fehler oder aus anderen gruenden nicht dafuer implementiert ??
z.B. in C# gibt es dafuer extra "Array.getLength(int index);" (oder so ähnlich).

Thx schon mal im Vorraus... 😉
 
Ein Freund hat mir gerade geholfen... Lösung:

Java:
 public static void main(String[] args) {
   int[][][] ints = new int[1][2][3];
   System.out.println(ints[0][0].length);
 }

Also, ints.length (1.Dimension) ints[0].length (2.Dimension) usw....dann nur noch multiplizieren und schon hat man die spezifische laenge...
 
Mehrdimensionale Arrays/Unterarrays müssen nicht unbedingt die gleiche Länge haben, deshalb ist z.B. auch nur so etwas möglich:
Java:
System.out.println(ints.length);
System.out.println(ints[0].length);
System.out.println(ints[0][0].length);
Ausgabe dann 1, 2, 3.

Edit: Hier wirds unübersichtlich:
Java:
        int[][][] iaaa1 = {{{}}};
        int[][][] iaaa2 = {{{1}}, {{2}}, {{3}}};
        int[][][] iaaa3 = {{{1, 2, 3}, {4}, {5}}, {}, {{6}}};
        int[][][][] iaaaa = {iaaa1, iaaa2, iaaa3};

        System.out.println("länge iaaaa:" + iaaaa.length);
        for (int[][][] iaaa : iaaaa) {
            System.out.println("länge iaaa:" + iaaa.length);
            for (int[][] iaa : iaaa) {
                System.out.println("länge iaa:" + iaa.length);
                for (int[] ia : iaa) {
                    System.out.println("länge ia:" + ia.length);
                    for (int i : ia) {
                        System.out.println(i);
                    }
                }
            }
        }
...besser so:
Java:
        int[][][] iaaa1 = {{{}}};
        int[][][] iaaa2 = {{{1}}, {{2}}, {{3}}};
        int[][][] iaaa3 = {{{1, 2, 3}, {4}, {5}}, {}, {{6}}};
        int[][][][] iaaaa = {iaaa1, iaaa2, iaaa3};

        for (int i = 0; i < iaaaa.length; i++) {
            for (int j = 0; j < iaaaa[i].length; j++) {
                for (int k = 0; k < iaaaa[i][j].length; k++) {
                    for (int l = 0; l < iaaaa[i][j][k].length; l++) {
                        System.out.println("" + i + j + k + l + ": " + iaaaa[i][j][k][l]);
                    }
                }
            }
        }
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben