流
如果您使用的是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。如果你想在每一个执行操作MyObjects表示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));
}