我有一些数据结构,我想将其中一个用作临时结构,将另一个用作非临时结构。
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。
myObject
myTempObject
如何myTempObject在myObject使用Java时保留值?
您可以使用以下技巧:
myObject = new ArrayList<Object>(myTempObject);
或使用
myObject = (ArrayList<Object>)myTempObject.clone();
您可以在此处获取有关clone()方法的一些信息
但是您应该记住,所有这些方式都会给您 List 的副本,而不是其所有元素。因此,如果您更改复制的列表中的元素之一,则它也将在原始列表中进行更改。