gpt4 book ai didi

java - java中两个列表的交集

转载 作者:行者123 更新时间:2023-12-02 11:01:07 36 4
gpt4 key购买 nike

我使用 for 和 if 循环通过比较列表的内部 JSON 来查找列表的交集。我正在寻找使用 CollectionUtils 或 Java 8 或其他类似解决方案的解决方案。

private List<IBXLocation> compareIbxLocationDetails(List<IBXLocation> serviceIbxsForLoggedInUser,
List<IBXLocation> serviceIbxsForUser) {
List<IBXLocation> finalList=new ArrayList();
for (IBXLocation ibxForLoggedInUser : serviceIbxsForLoggedInUser) {
String ibxSelected=ibxForLoggedInUser.getIbx();
boolean ibxFound = false;
ibxLoop:for (IBXLocation permittedIBXForUser : serviceIbxsForUser) {
if (ibxSelected.equals(permittedIBXForUser.getIbx())) {
IBXLocation newIbx = new IBXLocation(ibxSelected);
List<Cage> newCageList=new ArrayList();
if (!CollectionUtils.isEmpty(ibxForLoggedInUser.getCageDetails())) {
for (Cage selectedCage : ibxForLoggedInUser.getCageDetails()) {
String loggedInSelectedCageStr = selectedCage.getCage();
for (Cage permittedCage : permittedIBXForUser.getCageDetails()) {
if (loggedInSelectedCageStr.equals(permittedCage.getCage())) {
newCageList.add(permittedCage);
}

}
newIbx.setCageDetails(newCageList);
}
finalList.add(newIbx);
}
ibxFound = true;
break ibxLoop;
}

}

}

return finalList;
}

最佳答案

你可以使用这个

Set ibxForLoggedInUserToSet= new HashSet<IBXLocation>(ibxForLoggedInUser);

for(IBXLocation per: serviceIbxsForUser){
if (ibxForLoggedInUserToSet.contains(per)){
finalList.add(per);
}
}

关于java - java中两个列表的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51313341/

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