所以我有变量Optional<Collection<Student>>,我想使用.findFirst()lambda方法查找Student地址。
我现在做的方式是这样
Optional<Collection<Student>> students = ...;
return students.map(s -> s.stream()
.filter(...)
.findFirst())
.orElse(Optional.empty());
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法可以做到这一点,这样我就不会在地图内部创建流了?
看来您正在寻找flatMap:
students.flatMap(s -> s.stream()
.filter(...)
.findFirst());
Run Code Online (Sandbox Code Playgroud)
会将映射Optional<Collection<Student>>到Optional<Student>而不是Optional<Optional<Student>>。
| 归档时间: |
|
| 查看次数: |
1280 次 |
| 最近记录: |