我有这种情况:

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转换为ListStream操作

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());

09-26 06:19