gpt4 book ai didi

java - 比较java中包含相同对象的两个ArrayLists

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:30:19 25 4
gpt4 key购买 nike

我在下面给出了两个 ArrayList 作为示例。加速器:compareKey,Amount字段

列表 1:

AccVO[001,500]                                                   
AccVO[002,600]
AccVO[003,800]

list 2:

AccVO[001,100]                                                                   
AccVO[001,100]
AccVO[001,300]
AccVO[003,300]
AccVO[003,300]
AccVO[003,200]
AccVO[005,300]
AccVO[005,300]

我已经对这两个列表进行了排序。我必须用比较键比较两个列表并获取 List2 的记录以插入数据库。

示例代码:

for(AccVO accvo1 : List1){
for(AccVO accvo2 : List2){
if(accvo1.getCmpkey().equals(accvo2.getCmpkey())){
//insert the recs into the table
}
}
}

由于我的列表规模会更大,即处理数百万条记录,因此我需要一些乐观的逻辑来循环记录。

先谢谢你普拉萨那

最佳答案

因为你的列表是排序的,你可以在两个数组中使用一个索引,并且每次只增加较小的键:

int i = 0,j = 0;

while (i < List1.size() && j < List2.size()){
int x = List1.get(i).getCmpKey().CompareTo(List2.get(j).getCmpKey();
if (x == 0){
//add record
j++;
}else if(x < 0){
i++;
}else{
j++;
}
}

关于java - 比较java中包含相同对象的两个ArrayLists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1865441/

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