gpt4 book ai didi

java - 如何制作 Java ArrayList 的深拷贝

转载 作者:IT老高 更新时间:2023-10-28 20:31:32 47 4
gpt4 key购买 nike

Possible Duplicate:
How to clone ArrayList and also clone its contents?

试图制作 ArrayList 的副本。底层对象很简单,包含字符串、整数、BigDecimals、日期和日期时间对象。如何确保对新 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());

干杯,P

最佳答案

在添加对象之前克隆对象。例如,代替 newList.addAll(oldList);

for(Person p : oldList) {
newList.add(p.clone());
}

假设 clonePerson 中被正确覆盖。

关于java - 如何制作 Java ArrayList 的深拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7042182/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com