我已经看到了这个问题的答案,但它没有复制值。
List<SomeBean> newList = new ArrayList<SomeBean>(otherList);
我需要有两个单独的列表,因为我想修改新列表中的元素并将它们与原始列表进行比较。如果我这样做,在newList中编辑对象也会在otherList中修改它们。
这是如何在java中完成的?
答案 0 :(得分:1)
此代码将创建一个新列表,然后从旧列表中创建每个对象的克隆并将其添加到新列表中。
List<SomeBean> newList = new ArrayList<SomeBean>(otherList.size());
for(SomeBean item : otherList) {
newList.add(item.clone());
}
您发布的示例应该工作,但如果没有,还有另一种方法:
List<SomeBean> newList = new ArrayList<SomeBean>(otherList.size());
Collections.copy(newList, otherList);
这会使新列表与另一个列表的大小相同,然后复制值。