我有两个列表
class FirstElement {
private int id;
private String name;
}
class SecondElement {
private int id;
private String someString;
}
List<FirstElement> listF = getListOfSomeElements1();
List<SecondElement> listS = getListOfSomeElements2();
如果属性name = someString
,我需要在listF<FirstElement>
中找到元素
如果我需要通过相应的元素找到,我会使用例如:
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删除我的方法?
答案 0 :(得分:1)
如果您想将当前方法转换为流版本,则可以使用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>
,plot = sympy.plot(..., show=False)
可以找到。
答案 1 :(得分:0)
您可以按需要的字段过滤流