一尘不染

如何将一个ArrayList的内容复制到另一个?

java

我有一些数据结构,我想将其中一个用作临时结构,将另一个用作非临时结构。

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

如何myTempObjectmyObject使用Java时保留值?


阅读 282

收藏
2020-09-09

共1个答案

一尘不染

您可以使用以下技巧:

myObject = new ArrayList<Object>(myTempObject);

或使用

myObject = (ArrayList<Object>)myTempObject.clone();

您可以在此处获取有关clone()方法的一些信息

但是您应该记住,所有这些方式都会给您 List 的副本,而不是其所有元素。因此,如果您更改复制的列表中的元素之一,则它也将在原始列表中进行更改。

2020-09-09