zweidimensionalen Array in dreidimensionalen Array speichern

Nico1999

Aktives Mitglied
ist es möglich einen zwei dimensionalen array in einem dreidimensionalen array zu speichern
Java:
int [][] brett= new int[2][2];
int [][][] brettverlaufspeicher=new int [][2][2]
public static void übertrage(int [][]b, int [][][]a, int k){
    for (k){
        for (int i=0; i<b.length;i++){
            for (int j =0;j<b.length;j++){
                b[i][j]=a[k][i][j];
            }
        }
    }
}// Programm
while (true){
    int anzahl =0;   
    //verändere brett
    übertrage(brett,brettverlaufsspeicher,anzahl);
    anzahl++
}
also im generellen möchte ich brett in brettverlaufsspeicher speichern und somit jede veränderung von brett im laufe der Schleife abspeichern. kann ich daher einerseits die zahl irgentwie offenlassen, wie oft ich brett speichern möchte da ich vorher nicht genau weiß wie lange die schleife geht und leider habe ich noch keinen ansatz gefunden wie ich das generel machen kann, daher sag ich schonmal danke fürs antworten 😉
 
Beste Antwort
Ja, das geht natürlich, denn ein 2D Array ist nur ein Array von Arrays. Und das gilt auch für 3D Arrays: Das ist ein Array von Arrays von Arrays.

ABER: Strukturiere Deinen Code! Bau vernünftige Klassen! Du hast ein Brett. Also schreib eine Klasse Brett und dieses verwaltet dann intern irgendwie die Daten. Und dann hast Du einfach ein List<Brett> für den Verlauf.

Was Dein Code angeht: Bitte immer erst für Dich formulieren: Was genau soll der Code denn machen? Dein Code ist nicht nur übersetzbar sondern macht auch so keinen Sinn. Durch die gewählten Bezeichner ist auch unklar, was da überhaupt gemacht werden soll. Was sollen Variablen b, k, a, ...?
Benenne Variablen ordentlich: Das eine ist dann von mir aus ein brett oder ein...
In Java ist ein Array ein Objekt und ein zweidimensionales Array ist einfach ein Array von Arrays, ein dreidimensionales ein Array von Arrays von Arrays. Also: ja, das ist problemlos möglich.

Allerdings ist das nicht sinnvoll. Erstelle einen Typen für das Spielbrett, dann kannst Du die History in einer Liste speichern und hast das sauber im Code stehen - ohne dieses ganze Array-Wirrwarr.
 
Ja, das geht natürlich, denn ein 2D Array ist nur ein Array von Arrays. Und das gilt auch für 3D Arrays: Das ist ein Array von Arrays von Arrays.

ABER: Strukturiere Deinen Code! Bau vernünftige Klassen! Du hast ein Brett. Also schreib eine Klasse Brett und dieses verwaltet dann intern irgendwie die Daten. Und dann hast Du einfach ein List<Brett> für den Verlauf.

Was Dein Code angeht: Bitte immer erst für Dich formulieren: Was genau soll der Code denn machen? Dein Code ist nicht nur übersetzbar sondern macht auch so keinen Sinn. Durch die gewählten Bezeichner ist auch unklar, was da überhaupt gemacht werden soll. Was sollen Variablen b, k, a, ...?
Benenne Variablen ordentlich: Das eine ist dann von mir aus ein brett oder ein brettVerlauf oder eine position oder oder oder ... Sinnvolle namen!
 
Beste Antwort
Ja, das geht natürlich, denn ein 2D Array ist nur ein Array von Arrays. Und das gilt auch für 3D Arrays: Das ist ein Array von Arrays von Arrays.

ABER: Strukturiere Deinen Code! Bau vernünftige Klassen! Du hast ein Brett. Also schreib eine Klasse Brett und dieses verwaltet dann intern irgendwie die Daten. Und dann hast Du einfach ein List<Brett> für den Verlauf.

Was Dein Code angeht: Bitte immer erst für Dich formulieren: Was genau soll der Code denn machen? Dein Code ist nicht nur übersetzbar sondern macht auch so keinen Sinn. Durch die gewählten Bezeichner ist auch unklar, was da überhaupt gemacht werden soll. Was sollen Variablen b, k, a, ...?
Benenne Variablen ordentlich: Das eine ist dann von mir aus ein brett oder ein brettVerlauf oder eine position oder oder oder ... Sinnvolle name
Danke für die Antwort mir war nicht bewusst das ich ein Array aus Objekten machen kann. Allerdings noch kurze Frage kann ich da irgentwie die Größe offen lassen den die weiß ich ja nicht?
 
Arrays haben immer eine feste, nicht veränderliche Größe.
Daher nutzt man in der Regel einer der vielen Java Collections Klassen. Eine Übersicht über Java Collections findet sich z.B. hier:

Das Interface List hatte ich schon innerhalb des letzten Posts genannt. Eine konkrete Implementation könnte z.B. ArrayList sein.
 

Neue Themen


Zurück
Oben