如何在Java中使用lambda表达式搜索集合?

use*_*652 5 java collections lambda java-8

有一Person类(包含三个元素:person_name,age,sex).有一个List有100个Person对象.

我需要通过搜索此列表person_name并使用lambda表达式实现搜索功能.

spr*_*ter 20

public Optional<Person> findPersonByName(final List<Person> list, final String name) {
    return list.stream().filter(p -> p.getName().equals(name)).findAny();
}
Run Code Online (Sandbox Code Playgroud)

它返回一个,Optional所以你需要测试它以查看是否存在值.或者,orElse(null)如果您希望在失败的搜索中获得空值,则可以使用.