gpt4 book ai didi

java - 如何在List中查找元素?

转载 作者:行者123 更新时间:2023-11-30 05:40:12 27 4
gpt4 key购买 nike

我有两个列表,例如:

列表 1:只有一个元素

List<String> ids=new ArrayList<String>();

列表 2:有 1000 个对象

List<ABC> abc=  new ArrayList<ABC>();

a.matIDS

注意:matIDS 是字符串集合(例如:abc、def、ghi)

for(ABC a : abc){
for(String id : a.matIDs()){
if(ids.contains(id)){
LOG.info("ID found:::");
}else{
LOG.info("ID NOT found:::");
}
}
}

问题:

列表 1 中只有 1 个元素,而列表 2 中有 1000 个元素。我需要检查所有这 1000 个元素才能找到第 1 个元素吗?

还有什么更好的办法吗?

最佳答案

您可以优化现有代码,以便在找到匹配项时退出循环。

booean isFound=false;
for(ABC a : abc){
for(String id : a.matIDs()){
if(ids.contains(id)){
isFound=true;
break;
}
}
if(isFound)
break;
}
if(isFound)
LOG.info("ID found:::");
else
LOG.info("ID NOT found:::");

您还可以使用流,

boolean isFound=abc.stream().flatMap(e-> e.matIDS.stream()).anyMatch(ids::contains);
if(isFound)
LOG.info("ID found:::");
else
LOG.info("ID NOT found:::");

要查找匹配的元素,您可以使用filter并收集在Set

  Set<String>  matchedElements=abc.stream()
.flatMap(e-> e.matIDS.stream())
.filter(ids::contains)
.collect(Collectors.toSet());

希望有帮助。

关于java - 如何在List中查找元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55804644/

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