Eindimensionales Array in zweidimensionales Array speichern

streami

Mitglied
Hallo Java-Community,

ich möchte gerne ein eindimensionales Array in einem quadratischen zweidimensionalen Array speichern. Ich dachte mir ich lege erst eine Grenze fest ab wann eine neue Zeile geschrieben werden soll.

int a = 3;

int eindim[] = {4, 1, 2, 0, 2, 3, 5, 0, 3, 8, 4, 1};

... Schleife zur Umwandlung
Danach sollte das neue zweidimensionale Array so aussehen:

double zweidim[][] = {{4, 1, 2, 0}, {2, 3, 5, 0}, {3, 8, 4, 1}};

Ich weiß allerdings nicht wie ich die Schleife formulieren soll, habe schon sehr viel rumprobiert aber nie hat es wirklich geklappt.

Vielen Dank schon mal für alle eure Tipps. Bin leider noch Anfänger.

LG streami
 
Hi danke für deine schnelle Anwort. Also ich hab das jetzt so verstanden:

int zeilenlaenge = 4; // Zeichen in einer Zeile
int eindim[] = {4, 1, 2, 0, 2, 3, 5, 0, 3, 8, 4, 1};
int zweidim[][] = {};

for(int i = 0; i <= eindim.length; i++) {
zweidim[index / zeilenlaenge][index % zeilenlaenge] = eindim[ i ];
}


ich weiß leider nicht wie ich deine Ausdrücke formuliere. Was verstehst du unter Index?

P.S. habe oben vergessen zu schreiben: das Array kann auch Rechteckig sein, also nicht nur Quadratisch.

LG streami
 
Zuletzt bearbeitet:
Ich glaube mit dem Index meinte er deine Schleifenvariable in der for-Schleife. So müsste es funktionieren:
Java:
public static void main(String[] args)  {
       
       int zeilenlaenge = 4; // Zeichen in einer Zeile
       int eindim[] = {4, 1, 2, 0, 2, 3, 5, 0, 3, 8, 4, 1};
       int spalten= eindim.length/ zeilenlaenge;
       
       int zweidim[][] = new int[spalten][zeilenlaenge];   
       
     for(int i = 0; i < eindim.length; i++) {
       zweidim[i / zeilenlaenge][i % zeilenlaenge] = eindim[ i ];        
     }
     
     for(int i=0; i<3; i++) { /// Ausgabe
        for(int j=0; j<zeilenlaenge; j++) {
            System.out.print(zweidim[i][j]);
        }
     System.out.println();
     }
   }
 

Zurück
Oben