Ich weiß, dass es eine triviale Angelegenheit ist, aber ich möchte diese Frage stellen. Angenommen, ich habe eine get-Methode, die eine ArrayList von Objekten zurückgibt. Zuerst müssen wir eine Kopie davon zurückgeben? Wenn ja, muss es eine tiefe Kopie der ArrayList sein? Müssen wir noch eine tiefe Kopie machen, wenn die Objekte darin unveränderlich sind? Wenn wir diese Art von KonstruktorTiefe Kopie bei der Verwendung von ArrayList in Java
ArrayList<T> arr = new ArrayList<>(collection);
dann werden die Elemente des Arrays kopiert oder sie weisen noch auf die alten Werte? Danke
Ok was ist, wenn der Typ String ist, dann kann ich es auf diese Weise zurückgeben: return new ArrayList <> (yourCollection); – user2735714
Absolut. Strings sind unveränderlich, daher ist es besonders sinnlos, eine tiefe Kopie von Strings zurückzugeben. – aioobe