# Länge eines mehrdimensionalen Arrays



## Alex_T (19. November 2010)

Grüße,

ich bräuchte mal wieder ein bisschen Hilfe.
Wie meine Überschrift schon sagt, suche ich eine Möglichkeit die Länge eines mehrdimensionalen Arrays (2-dimensional) zu bestimmen.
Dabei benötige ich die Anzahl der Spalten und Zeilen separat.

Ich hab mir bisher folgendes überlegt:

- abfragen der Länge des Arrays mit Arrayname.length -> das liefert mir aber leider nur den ersten Wert der eckigen Klammern.

Bin für Vorschläge dankbar und bedanke mich schonmal für eure Mühe.


----------



## CPoly (19. November 2010)

Es gibt keine "Spalten" und "Zeilen", weil es nicht Rechteckig sein muss. Beispiel


```
int[][] arr = new int[][] {
	new int[] {1,2,3},
	new int[] {4,5},
	new int[] {6},
};

for(int i=0; i<arr.length; i++) {
	for(int j=0; j<arr[i].length; j++) {
		System.out.println(arr[i][j]);
	}
}
```


----------



## Alex_T (19. November 2010)

Alles klar,

dann hab ich jetzt ne idee für die umsetzung.
Danke dir und noch 'n schönen Abend.


----------



## Thomas Darimont (19. November 2010)

Hallo,

schau mal hier:

```
package de.tutorials;

import java.lang.reflect.Array;

public class ArrayLength {
	public static void main(String[] args) {
		int[][][] array = new int[4][3][2];
		
		System.out.println(Array.getLength(array));
		System.out.println(Array.getLength(array[0]));
		System.out.println(Array.getLength(array[0][0]));
		
		System.out.println("######");
		
		System.out.println(getArrayLength(array,0));
		System.out.println(getArrayLength(array,1));
		System.out.println(getArrayLength(array,2));
		
	}
	
	private static int getArrayLength(Object array, int dimensionIndex) {
		if(dimensionIndex < 0){
			throw new IllegalArgumentException("negative array dimension index not allowed: " + dimensionIndex);
		}

		if(dimensionIndex > 0){
			for(int i = 0; i < dimensionIndex;i++){
				array = Array.get(array, 0);
			}
		}
		
		return Array.getLength(array);
	}
}
```

Ausgabe:

```
4
3
2
######
4
3
2
```

Gruß Tom


----------



## Alex_T (19. November 2010)

Ich bins nochmal,

tut mir leid aber ich hatte vergessen zu erwähnen, dass es sich um ein Array handelt, welches eine Matrix abbildet und diese ist nunmal rechteckig 

Deshalb hat mir auch folgendes gereicht:


```
int anzahlZeilen = arr.length;
int anzahlSpalten = arr[0].length;
```

...logischerweise würde mir dann ja reichen, die Länge der ersten Zeile abzufragen.

P.S. Thomas das werd ich mir mal noch genauer anschauen müssen. Danke auf jedenfall für den Code-Snippet.

Eine Frage hätte ich aber noch: Wie lautet denn der BBCode für den Java-Code?


----------



## CPoly (19. November 2010)

Ganz einfach:

[ code=java ]

:-D


----------



## Alex_T (19. November 2010)

```
System.out.println("Danke für den Hinweis!");
```


----------

