首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将一个ArrayList的内容复制到另一个?

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

Stack Overflow用户
提问于 2011-12-09 13:59:58
回答 8查看 270K关注 0票数 90

我有一些数据结构,我想使用一个作为临时的,另一个作为非临时的。

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,所以一旦清除了myTempObjectmyObject也会被清除。

如何使用java在myObject中保留来自myTempObject的值?

EN

回答 8

Stack Overflow用户

发布于 2015-04-11 01:10:58

当我自己面对同样的问题时也遇到了这个问题。

声明arraylist1 = arraylist2会将这两个列表设置为指向同一位置,因此,如果您更改其中一个数据,那么两个列表将始终保持不变。

为了将值复制到一个独立的列表中,我只使用foreach来复制内容:

ArrayList list1 = new ArrayList();
ArrayList list2 = new ArrayList();

以您当前的方式填充list1。

foreach(<type> obj in list1)
{
    list2.Add(obj);
}
票数 8
EN

Stack Overflow用户

发布于 2016-01-07 04:27:40

支持将oldList复制到名为newList的新ArrayList对象中

ArrayList<Object> newList = new ArrayList<>() ;

for (int i = 0 ; i<oldList.size();i++){
    newList.add(oldList.get(i)) ;
}

这两个列表是独立的,其中一个列表的更改不会反映到另一个列表中。

票数 6
EN

Stack Overflow用户

发布于 2011-12-09 14:05:50

您需要对单个对象执行clone()Constructor和其他方法执行浅层复制。您可以尝试Collections.copy方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8441664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档