Länge eines mehrdimensionalen Arrays

Alex_T

Erfahrenes Mitglied
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.
 
Es gibt keine "Spalten" und "Zeilen", weil es nicht Rechteckig sein muss. Beispiel

Java:
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]);
	}
}
 
Hallo,

schau mal hier:
Java:
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:
Code:
4
3
2
######
4
3
2

Gruß Tom
 
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 :D

Deshalb hat mir auch folgendes gereicht:

Code:
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?
 
Zurück