我有这种情况:
Class Employee{
//some attributes
List<String> idContract
//getter, setter
}
我需要使用Java 8流从列表中检索List idContracts。
我正在尝试这样的事情:
lst.stream().filter(o->!o.getLstDipFuoriSoglia().isEmpty())
.map(ResultOdg::getLstDipFuoriSoglia)
.collect(Collectors.toList());
但这当然会返回List >,那么如何实现该目标?
谢谢你的回答
最佳答案
只需添加将flatMap
转换为List
的Stream
操作
lst.stream().filter(o->!o.getLstDipFuoriSoglia().isEmpty)
.map(ResultOdg::getLstDipFuoriSoglia)
.flatMap(List::stream)
.collect(Collectors.toList());
或者您可以进行一次
flatMap
操作lst.stream().filter(o->!o.getLstDipFuoriSoglia().isEmpty)
.flatMap(list->list.getLstDipFuoriSoglia().stream())
.collect(Collectors.toList());