所以我有变量Optional<Collection<Student>>
,我想使用.findFirst()
lambda方法来查找Student
地址。
我现在正在做的就是这个
Optional<Collection<Student>> students = ...;
return students.map(s -> s.stream()
.filter(...)
.findFirst())
.orElse(Optional.empty());
有没有更好的方法来做到这一点,所以我不会在地图中流?
答案 0 :(得分:4)
您好像在寻找flatMap
:
students.flatMap(s -> s.stream()
.filter(...)
.findFirst());
这会将Optional<Collection<Student>>
映射到Optional<Student>
而不是Optional<Optional<Student>>
。