Arraynamen über eine Schleife ansprechen

grewer2173

Mitglied
Hallo Java-Forum,
ich möchte ein mehrdimensionales char-Array durch vordefinierte eindimensionale Arrays füllen z.B.:
Java:
char[][] array = new char[3][5];
        char[] z0 = { 'X', 'X', 'X', 'X', 'X'};
        char[] z1 = { 'X', 'X', 'X', 'X', 'X'};
        char[] z2 = { 'X', 'X', 'X', 'X', 'X'};
Ich kann die Spalten mit folgender Schleife aus dem Array z0 füllen:
Java:
        for (int i = 0; i < z0.length; i++) {
            array[0][i] = z0[i];
        }

Wie kann ich die Namen der eindimensionalen Arrays (also bei mir z0,z1,z2 usw.) mit Hilfe einer zweiten Schleife ansprechen, so dass ich auch die Zeilen über diese Schleife befüllen kann?

Vielen Dank!!!
 
super, vielen Dank für die schnelle Antwort!
Ich habe meine Frage nicht richtig formuliert. Wenn ich mein mehrdimensionales Array nacheinander füllen möchte, fällt mir nichts anderes ein, als die folgende Schleife (hier als Beispiel für das z0) für jedes andere z-Array zu wiederholen:
Java:
//z0
for (int i = 0; i < z0.length; i++) {
            array[0][i] = z0[i];
        }
//z1
for (int i = 0; i < z1.length; i++) {
            array[1][i] = z1[i];
        }
Das ist nicht schön. Ich suche eine Möglichkeit, wie ich den Namen der z-Arrays über eine zweite Schleife übergeben kann. Oder denke ich hier zu kompliziert...?
Danke schön!
 
Du brauchst irgendeine Datenstruktur, die deine drei einzelnen Arrays kapselt um darüber iterieren zu können. Also z. B. ein Array wie Robat schon sagte:

Java:
        char[][] array = new char[3][5];


        char[] z0 = { 'X', 'X', 'X', 'X', 'X'};
        char[] z1 = { 'X', 'X', 'X', 'X', 'X'};
        char[] z2 = { 'X', 'X', 'X', 'X', 'X'};

        char[][] tmpArray = {z0, z1, z2};
        for(int i=0; i<tmpArray.length; i++){
            array[i]=tmpArray[i];
        }

Oder falls dir eine Shallow-Copy nicht reicht, dann entsprechend als Deep-Copy:
Java:
        char[][] tmpArray2 = {z0, z1, z2};
        for(int i=0; i<tmpArray2.length; i++){
            for (int j = 0; j < tmpArray2[i].length; j++) {
                array[i][j] = tmpArray2[i][j];
            }
        }


Wobei das Beispiel jetzt natürlich etwas sinnlos ist, weil man direkt sagen könnte
Java:
char[][] array = {z0, z1, z2};
 

Neue Themen


Zurück
Oben