deep copy verschachtelter arrays machen?

bernd

Neues Mitglied
Hallom in meinem aktuellen "Projekt" kommt bspw. ein gebilde der Art
ArrayList<ArrayList<ArrayList<Long>>> vor.
Also als Menge geschrieben sowas wie {{{1,2}{3,4}}{{5,7}}}
sieht hässlich aus, ist es auch und ,acht wenig spaß damit zu arbeiten weil man höllisch aufpassen muss.

Nun bräuchte ich eine Kopie des ganzen auf der ich rumwerkeln kann.
Natürlich aber keine standardkopie, die nur referenzen kopiert, weil dann veränderungen an der kopie auch das original beeinflussen.

Insofern bräuchte ich da eine deep copy des Ganzen.

Gibts da einen shclaueren weg das hinzubekommen oder vielleicht einen passenden befehl?
Ich könnte nur von grund auf halt eine kopie nachbilden:
Java:
//Sei Array das alte arraylistgebilde
ArrayList<ArrayList<ArrayList<Long>>> copy = new ArrayList<ArrayList<ArrayList<Long>>>;

for (ArrayList<ArrayList<Long>> Arrayi : Array) {
  ArrayList<ArrayList<Long>> Copyi = new ArrayList<ArrayList<Long>>;

  for (ArrayList<Long> Arrayii : Arrayi) {
    ArrayList<Long> Copyii = new ArrayList<Long>;

    for (long a : Arrayii) {
      Copyii.add(a);
    }
    Copyi.add(Copyii);
  }
  Copy.add(Copyi);
}
//copy hat nun die selben inhalte wie array und das ohne referenzen


Das liest sich schlecht, lässt sich shcwer nachvollziehen (auch was vor, in oder nach der for schleife stehen muss)und noch schwieriger fehlen finden.
davon ab dass ich beid er Namensgebung nicht gut bin und daher probleme habe, sinnvolle namen für das zweitinnerste element oder so zu finden sodass man am schluss noch weiß was was ist wo rein gehört :-/

gibts das nicht irgendwie in einfacher oder so? :-/
 
Oben Unten