流
如果您使用的是Java 8,则可以尝试执行以下操作:
public boolean containsName(final List<MyObject> list, final String name){
return list.stream().filter(o -> o.getName().equals(name)).findFirst().isPresent();
}
或者,您可以尝试如下操作:
public boolean containsName(final List<MyObject> list, final String name){
return list.stream().map(MyObject::getName).filter(name::equals).findFirst().isPresent();
}
true
如果中List<MyObject>
包含MyObject
名称为的,则此方法将返回name
。如果你想在每一个执行操作MyObject
s表示getName().equals(name)
,那么你可以尝试这样的事:
public void perform(final List<MyObject> list, final String name){
list.stream().filter(o -> o.getName().equals(name)).forEach(
o -> {
//...
}
);
}
Where o
代表一个MyObject
实例。
或者,如注释所示(感谢MK10),可以使用以下Stream#anyMatch
方法:
public boolean containsName(final List<MyObject> list, final String name){
return list.stream().anyMatch(o -> o.getName().equals(name));
}