Possible Duplicate:
How to clone ArrayList and also clone its contents?
尝试复制 ArrayList。底层对象很简单,包含 Strings、ints、BigDecimals、Dates 和 DateTime 对象。如何确保对新 ArrayList 所做的修改不会反射(reflect)在旧 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());
干杯,
在添加对象之前克隆它们。例如,而不是 newList.addAll(oldList);
for(Person p : oldList) {
newList.add(p.clone());
}
假设clone
在Person
中被正确覆盖。
我是一名优秀的程序员,十分优秀!