这个问题已经在这里有了答案 :
9年前关闭。
可能重复: 如何克隆ArrayList并克隆其内容?
试图复制一个ArrayList。基础对象很简单,包含Strings,ints,BigDecimals,Dates和DateTime对象。如何确保对新ArrayList所做的修改不会反映在旧ArrayList中?
Person morts = new Person("whateva"); List<Person> oldList = new ArrayList<Person>(); oldList.add(morts); oldList.get(0).setName("Mortimer"); List<Person> newList = new ArrayList<Person>(); newList.addAll(oldList); newList.get(0).setName("Rupert"); System.out.println("oldName : " + oldList.get(0).getName()); System.out.println("newName : " + newList.get(0).getName());
干杯,P
在添加对象之前先对其进行克隆。例如,代替newList.addAll(oldList);
newList.addAll(oldList);
for(Person p : oldList) { newList.add(p.clone()); }
假设clone已正确覆盖Person。
clone
Person