Ich kann nicht nur die ursprüngliche Liste ändern. DieseListe am Ende einer anderen Liste hinzufügen (nicht nur Referenzen kopieren)
ist, wie ich habe es getan gesehen:
List<String> l1 = new ArrayList<String>();
l1.add("Hello");
l1.add("World");
List<String> l2 = new ArrayList<String>(l1); //A new arrayList.
l2.add("Everybody");
So würde ich jetzt eine neue Liste, die eine Kopie des ersten ist. Und ich kann die zweite ändern, ohne dass die erste geändert wird.
Und jetzt habe ich Probleme zu verstehen, wie das Gleiche zu tun, aber die Elemente am Ende der Liste hinzufügen.
Was ich tat, tat genau den obigen Code und fügte die Liste zu einer anderen Liste hinzu. Zum Beispiel mit addAll
. Aber ich sehe überall, dass das nur Verweise kopiert und so weiter. Wenn es also in einer Methode oder in einem Rmi-Code ist, würde die Liste selbst nicht vollständig sein, es würde Verweise auf die andere Liste erhalten, die ich gerade erstellt habe.
Da muss ich dies für viele Arten von Liste nicht sicher, ob Artikel für Artikel ist ideal. Also muss ich am Ende einer anderen Liste eine Liste hinzufügen, wenn das überhaupt möglich ist.
Welche Elemente möchten Sie an welches Ende der Liste hinzufügen? Objektlisten enthalten immer nur Referenzen, so dass Sie Referenzen nur von einer Liste in eine andere kopieren können, wenn Sie den Konstruktor oder das Adall für diese Frage verwenden – LionC
Es kopiert Referenzen der hinzugefügten Elemente, nicht der Liste. Und das gilt auch für die Methode, die Sie gezeigt haben (mit der 'new ArrayList (l1)'). –
RealSkeptic
Das Kopieren von Verweisen auf unveränderliche Klassen sollte kein Problem sein. 'Saiten sind unveränderlich. – fabian