Flache Kopien

Eclipse_Int

Mitglied
Hey liebe Community.

ich habe in der Uni die Aufgabe eine flache Kopie eines 3D Feldes zu erstellen.
Meiner Ansicht nach habe ich alles richtig gemacht. Wenn ich versuche die Kopie auszugeben, dann stehen auf der Konsole nur die Codes für Speicherorte und nicht die Zahlen aus dem Feld, welches kopiert wurde. Ist das richtig?

public class Aufgabe02 {

public static void main(String[] args) {

int[][][] feld = {{{1,2},{9,8,7,2},{1,1,1}},{{1,2,5},{1}}};

for (int i = 0; i < feld.length; i++) {
for(int j = 0; j < feld.length; j++) {
for(int t = 0; t < feld[j].length; t++) {
System.out.println(feld[j][t]);
}
}

}

int [][][] flacheKopie = new int [feld.length][][];

for(int i = 0; i < feld.length; i++) {
flacheKopie = feld ;
}

for (int i = 0; i < feld.length; i++) {
System.out.println(flacheKopie);
}


}

Konsolenausgabe:

1
2
9
8
7
2
1
1
1
1
2
5
1
[[I@4c203ea1
[[I@27f674d>


Danke für die Hilfe!
 
Zuletzt bearbeitet:

mihe7

Top Contributor
Bitte nutze Code-Tags (im Editor auf </> klicken), um den Code einzufügen. Ansonsten passt die Formatierung hinten und vorne nicht.

Was man sieht: ja, sieht mir nach flacher Kopie aus.
 

mihe7

Top Contributor
dann stehen auf der Konsole nur die Codes für Speicherorte und nicht die Zahlen aus dem Feld, welches kopiert wurde. Ist das richtig?
Das sind Strings, die Hashwerte enthalten. Wenn Du testen willst, ob die Kopie flach ist, müsstest Du einfach einen Referenzvergleich durchführen: feld[i] == flacheKopie[i] muss gelten.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
I Für was macht man "deep Kopien" Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben