gpt4 book ai didi

java - ArrayList的深拷贝

转载 作者:行者123 更新时间:2023-12-01 16:54:05 24 4
gpt4 key购买 nike

我需要为访问器和修改器方法制作一个 long 类型的 ArrayList 的深拷贝。我尝试对此进行搜索,但无论我找到什么并尝试什么,我的测试都表明该变元并未深度复制 ArrayList。此 ArrayList 称为“transactions”,它包含在“CustomerData”的子类中,该子类是“PersonData”。

这是我的更改器(mutator):

    public ArrayList<Long> getTransactions() {
if (transactions == null) throw new IllegalArgumentException();


final ArrayList<Long> copy = new ArrayList<Long>(transactions.size());
for(Long l : transactions) {
copy.add(new Long(l.intValue()));
}
return copy;
}

哪里不对?

最佳答案

在添加对象之前克隆它们。例如,而不是 newList.addAll(oldList);

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

假设clonePerson中被正确覆盖。

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

24 4 0