gpt4 book ai didi

java - 克隆引用相同对象的多个数组列表

转载 作者:行者123 更新时间:2023-12-02 02:26:42 27 4
gpt4 key购买 nike

我有一个包含某些对象的数组列表a。我还有一个 arraylist b ,其中包含包含其中一些对象的数组列表。现在,我想克隆 arraylist a,同时更新 arraylist b 中对克隆对象的引用。伪代码示例:

a = [object1,object2,object3,object4,object5,object6,object7,object8,object9,object10];
b = [[object3,object8,object5],[object2,object9,object1][object6,object7]];

//now, I can clone arraylist a
aClone = [clone1,clone2,clone3,clone4,clone5,clone6,clone7,clone8,clone9,clone10];

//but how do I get a clone of arraylist b containing references to the clones of the objects like so:
bClone = [[clone3,clone8,clone5],[clone2,clone9,clone1][clone6,clone7]];

我想出的东西如下:

for(int i = 0; i < a.length; i++){
o = a.get(i);
aClone.set(i, o);
for(int j = 0; j < b.length){
for(int k = 0; k < b.get(j).length){
if(b.get(j).get(k).value() == o.value())
bClone.get(j).set(k, o);
}
}
}

此代码在创建每个克隆后检查 b 中是否存在旧对象,并将其替换为克隆。我想这会非常慢,所以有人知道如何更有效地做到这一点吗?

最佳答案

您可以通过在列表中保存包装类而不是直接引用对象来做到这一点,然后您可以通过调用如下方法来克隆包装的对象:myWrapper.cloneObject()。

由于 b 上的列表持有对包装类的相同引用,因此当克隆对象时,这两个列表将同步。

关于java - 克隆引用相同对象的多个数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47678750/

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