rag*_*aga 2 collections java-8
我是java 8编程的新手,想知道使用streams()/ lambda重写下面的最佳方法是什么.
class Person {
String name;
int age;
...
}
public boolean checkPersonAboveAge(List<Person> persons, int age) {
for (Person person : persons) {
if (person.age > age) {
return true;
}
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我试过:
public boolean checkPersonAboveAge(List<Person> persons, int age) {
Person p = persons.stream().filter(p -> p.age > age).findAny().orElse(null);
if (p != null) {
return true;
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
我用lamdba读到了代码的可读性会有所提高,但是看看这个例子我要么没有正确使用这个功能,要么缺少一些东西.
您当前的流尝试确实有效,但这是不常见的,而不是最好的方法.
相反,请使用anyMatch完全符合您要求的方法.
return persons.stream().anyMatch(p -> p.age > age);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
326 次 |
| 最近记录: |