【发布时间】:2017-12-06 16:11:23
【问题描述】:
我有一个包含某些对象的数组列表a。我还有一个数组列表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 中是否存在旧对象,并将其替换为克隆。我想这会非常慢,所以有人知道如何更有效地完成吗?
【问题讨论】:
-
不确定你在说什么类型的引用,但我看到的都是原始整数。
-
@MuratK。在我的实际代码中,我使用的是对象。在这里,为了清楚起见,我使用数字来表示对象
-
乔南,您有足够的代表知道您还应该向我们展示您尝试了什么以及遇到了什么问题......
标签: java performance arraylist clone