gpt4 book ai didi

java 比较列表元素的属性,如 list.contains(..) 但按属性

转载 作者:行者123 更新时间:2023-11-30 10:18:22 25 4
gpt4 key购买 nike

我有两个列表

class FirstElement {
private int id;
private String name;
}

class SecondElement {
private int id;
private String someString;
}

List<FirstElement> listF = getListOfSomeElements1();
List<SecondElement> listS = getListOfSomeElements2();

我需要在 listF<FirstElement> 中找到元素如果属性名称=someString

如果我需要通过元素的对应来查找,我使用例如:

if(listF.contains(listS.get(1))){...}

我用自己的方法

boolean compareProperties(List<FirstElement> firstList, SecondElement secondElement){
for(FirstElement firstElement:firstList){
if (firstElement.getName().equals(secondElement.getSomestring)){
return true;
}
}
return false;
}

如何使用 Stream 删除我的方法?

最佳答案

如果您想将当前方法转换为流版本,则可以使用 anyMatch .

boolean exists = 
listF.stream()
.anyMatch(e -> e.getName().equals(secondElement.getSomestring));

如果你想找到满足提供条件的第一个元素,那么你可以这样做:

Optional<FirstElement> firstElement = 
listF.stream()
.filter(e -> e.getName().equals(secondElement.getSomestring))
.findFirst();

有多种方法可以打开 Optional<T> 的包装可以找到here .

关于java 比较列表元素的属性,如 list.contains(..) 但按属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49320086/

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