需要一个带有对象副本的ArrayList的副本

时间:2016-01-02 10:06:54

标签: java arraylist copy clone

您好我正在尝试创建一个ArrayList,其中包含原始ArrayList中对象的副本。我在这里搜索过,但是不能满足早期帖子的帮助。下面是我正在尝试复制的ArrayList。

ArrayList<Stuff> originallist = new ArrayList<Stuff>();

对不起,如果重新发布!

1 个答案:

答案 0 :(得分:1)

这不是一般可以回答的问题,因为它取决于如何复制对象。

假设对象有一个名为copyOf的方法,它返回对象的副本,你需要这样做

ArrayList<Stuff> copy = new ArrayList<Stuff>(originallist.size());
for (Stuff s : originallist) {
    copy.add(s.copyOf());
}

很多地方都有&#34; copyOf&#34;功能可能来自。如果一个对象实现了可克隆接口,那么它可能是该函数的一个来源(但是有各种原因阻止该接口)。某些类包含一个从现有实例创建副本的构造函数,在这种情况下,您可以执行

ArrayList<Stuff> copy = new ArrayList<Stuff>(originallist.size());
for (Stuff s : originallist) {
    copy.add(new Stuff(s));
}

在其他情况下,可能必须使用访问字段的方法(例如使用保留名字和姓氏的Person对象)

ArrayList<Person> copy = new ArrayList<Person>(originallist.size());
for (Person s : originallist) {
    copy.add(new Person(s.getFirstName(),s.getLastName()));
}

要确定如何操作,你应该看看&#34; Stuff&#34;的api指南。宾语。实际复制List本身很容易。