我有一些数据结构,我想将其中一个用作临时的,另一个则不是。
ArrayList<Object> myObject = new ArrayList<Object>();
ArrayList<Object> myTempObject = new ArrayList<Object>();
//fill myTempObject here
....
//make myObject contain the same values as myTempObject
myObject = myTempObject;
//free up memory by clearing myTempObject
myTempObject.clear();
现在这样做的问题当然是,myObject
实际上只是指向 myTempObject
,因此一旦清除了 myTempObject
,myObject
也会被清除。
如何在Java中保留从 myTempObject
到 myObject
的值?
List.addAll
。但是,如果你需要保留所有对象,那么清除临时列表并不能真正释放大量内存。因为你只是试图清除引用,而对于你想要保留的对象,你仍然在尝试保留它们。 - Bhesh Gurung