Array Dimensionen rauskriegen

Status
Nicht offen für weitere Antworten.

Bit2_Gosu

Bekanntes Mitglied
Hallo!

ich habe einen zweidimensionalen array test[][]. ich sage new test[columns][rows].
wie kann ich von der variable test aus "columns" oder "rows" rauskriegen?
 
Wenn würde es circa so aussehen:

Java:
int columns = 10;
int rows = 10;
String[][] test = new String[columns][rows];

//Mach irgendwas

System.out.println(test.length);
//Gibt die länge der ersten Dimension des Arrays aus

System.out.println(test[0].length);
//Gibt die länge einer der zweiten Dimensionen des Arrays aus

€dit:

Hoffe das ist es was du meinst
 
Das Problem ist, dass es in Java keine echten mehrdimensionalen Arrays gibt, es gibt nur Arrays von Arrays und eben diese Schreibweise, die ein Array von Arrays initialisiert, in dem jede Spalte gleich viele Zeilen enthält. Du könntest aber zum Beispiel schreiben:
Java:
String[][] test = new String[columns][rows];
test[0] = new String[rows+1];
Damit hätte deine erste Spalte eine Zeile mehr. Deshalb gibt es keine Methode "getLength(int dimension)" oder etwas ähnliches.

Zum Vergleich: in C# gibt es zusätzlich mehrdimensionale Arrays, sie werden deklariert mit
Java:
string[,] test = new string[columns,rows];
Console.WriteLine(test.GetLength(0)); // columns
Console.WriteLine(test.GetLength(1)); // rows

Edit: Vorsicht, offtopic: Ich merk grade - wäre es nicht viel logischer, die Zahlen in den [a] genau andersrum anzugeben? String[a] ist ja ein Array der Länge a das Arrays der Länge b enthält, sozusagen ein (String)[a] ???:L
 
Zuletzt bearbeitet:
Edit: Vorsicht, offtopic: Ich merk grade - wäre es nicht viel logischer, die Zahlen in den [a] genau andersrum anzugeben? String[a] ist ja ein Array der Länge a das Arrays der Länge b enthält, sozusagen ein (String)[a] ???:L

Darüber haben wir gemeinschaftlich schonmal irgendwo in der Plauderecke o.ä. tagelang rumgestritten (Link find ich nicht mehr) Die mehrdimensionalen Arrays sind von der Syntax her eben nicht einfach aufeinandergestapelte 1D-Arrays, stattdessen scheinen die dimensionen in der exakt umgekehrten reihenfolge angegeben zu werden. Man sollte drüber lieber nicht nachdenken: das tut weh^^ ArrayLists verwenden reicht.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben