您好我正在尝试创建一个ArrayList,其中包含原始ArrayList中对象的副本。我在这里搜索过,但是不能满足早期帖子的帮助。下面是我正在尝试复制的ArrayList。
ArrayList<Stuff> originallist = new ArrayList<Stuff>();
对不起,如果重新发布!
答案 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本身很容易。