# Größe, mehrdimensionales Array



## Kapitän (15. Feb 2009)

hallo,

ich stehe gerade etwas auf dem Schlauch.

Ich möchte ein zweidimensionales Array durchlaufen und dafür die Größe erfragen.
Dh. ich brauch zwei Größen...wie mach ich das?


----------



## hdi (15. Feb 2009)

array.length gibt dir die Anzahl der _Arrays_ im Array.
array[x].length gibt dir die Anzahl der _Elemente_ in dem Array x.


----------



## Mostly_Harmless (15. Feb 2009)

Falls ich deine Frage richtig verstanden habe:


```
int[][] arr = new int[10][7];
		
		for ( int y=0; y < arr.length ; y++ ) {
			for ( int x=0; x < arr[y].length ; x++ ) {
				arr[y][x] = y+x;
				System.out.print( arr[y][x] + "   " );
			}
			System.out.println();
		}
```

Das funktioniert, da ein zweidimensionaler Array auch nur ein Array von Arrays ist.

Edit: Ok zu langsam, aber ich hatte auch mehr zu tippen. ;-)


----------



## hdi (15. Feb 2009)

Üblicherweise ist die Zählvariable der ersten Schleife aber x und die der zweiten y.
Genauso wie die erste Dimension für die Anzahl der Zeilen, die zweite für die Anzahl der Spalten steht,
wenn man zB mit Tabellen o.ä. arbeitet.


----------



## Mostly_Harmless (15. Feb 2009)

hdi hat gesagt.:
			
		

> Genauso wie die erste Dimension für die Anzahl der Zeilen, die zweite für die Anzahl der Spalten steht,



Genau deswegen mach ich es auch so wie oben gepostet.
Mag zwar unüblich sein, aber beim (2-dimensionalen) Koordinatensystem ist ja auch der y-Wert der vertikale, der x-Wert der horizontale Abstand zum Ursprung.


----------



## hdi (15. Feb 2009)

> Mag zwar unüblich sein, aber beim (2-dimensionalen) Koordinatensystem ist ja auch der y-Wert der vertikale, der x-Wert der horizontale Abstand zum Ursprung.



Kommt drauf an aus welcher Richtung man draufschaut. Öhh  :roll: ..nagut hast ja Recht


----------



## Ark (15. Feb 2009)

hdi hat gesagt.:
			
		

> Üblicherweise ist die Zählvariable der ersten Schleife aber x und die der zweiten y.
> Genauso wie die erste Dimension für die Anzahl der Zeilen, die zweite für die Anzahl der Spalten steht,
> wenn man zB mit Tabellen o.ä. arbeitet.


Was Mostly_Harmless geschrieben hat, stimmt schon. Die Indizierung erfolgt "verkehrt herum", damit die Elemente wieder "richtig herum" im Speicher abgelegt werden. Du sagst ja selbst, dass die erste Dimension die Anzahl der Zeilen und die zweite die Anzahl der Spalten angibt. Würdest du in der äußeren Schleife x und in der inneren y durchgehen, würdest du spaltenweise vorgehen und nicht zeilenweise. 

Ark

EDIT: Mist, schon wieder zu spät. xD


----------

