我有这种情况:
Class Employee{
//some attributes
List<String> idContract
//getter, setter
}
Run Code Online (Sandbox Code Playgroud)
我需要使用 java 8 流从列表中检索列表 idContracts。
我正在尝试这样的事情:
lst.stream().filter(o->!o.getLstDipFuoriSoglia().isEmpty())
.map(ResultOdg::getLstDipFuoriSoglia)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
但是,当然,返回一个 List< List < String >>,那么我怎样才能实现这个目标呢?
谢谢你的回答
只需添加flatMap转换List为的操作Stream
lst.stream().filter(o->!o.getLstDipFuoriSoglia().isEmpty)
.map(ResultOdg::getLstDipFuoriSoglia)
.flatMap(List::stream)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
或者您可以进行一次flatMap手术
lst.stream().filter(o->!o.getLstDipFuoriSoglia().isEmpty)
.flatMap(list->list.getLstDipFuoriSoglia().stream())
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
79 次 |
| 最近记录: |