Wie speichert Java Objekte in einer Liste?

8

Ich muss mit einer bestehenden Anwendung arbeiten und es gibt eine Liste, die alle gerenderten Objekte speichert, um sie später zu entfernen, wenn sich die GUI ändert.

Dies ist die Liste:

%Vor%

Nun frage ich mich, ob Java nur Referenzen auf die Objekte (ZK-Komponenten) speichert oder ob es eine Kopie der Objekte speichert. Die Frage ist, ob ich das entfernen sollte.

    
mw88 16.06.2011, 09:22
quelle

2 Antworten

13

Die Liste enthält nur Referenzen . Dies gilt für alle Arten von Sammlungen, nicht nur für ArrayLists.

In Java gibt es eigentlich keine Möglichkeit das Objekt selbst zu "erreichen". Wenn Sie ein neues Objekt erstellen, erhalten Sie nur einen Verweis darauf (und es gibt keine Möglichkeit, es zu "dereferenzieren", indem Sie beispielsweise einen Operator * wie in C ++ verwenden).

    
aioobe 16.06.2011, 09:23
quelle
3

Die Liste speichert Verweise auf die Objekte, keine Kopie. Die Objektinstanzen werden mit jedem anderen geteilt, der zufällig einen anderen Bezug auf sie hat.

Wenn Sie die Objekte später wieder aus der GUI entfernen möchten (vielleicht können Sie eine übergeordnete Komponente oder etwas anderes abfragen), kann die Liste redundant sein. Aber selbst wenn es so ist, gibt es hier wahrscheinlich nicht viel Overhead, und wenn Sie es nicht haben, könnte das Ihr Programm verkomplizieren.

    
Thilo 16.06.2011 09:26
quelle

Tags und Links