出于某种原因,我无法理解如何使用流将这个深度嵌套的列表变成一个新列表。 every A in List<A> contains ->
List<B> where every B contains ->
List<C> where every C contains -> List<String>我尝试了许多不同的迭代,例如: List<String> newlist = listA.getB()
.stream()
.filter(b -> b.getC()
.stream()
.filter(c -> c.getPeople)
.collect(Collectors.toList())我很困惑......我可以使用 for 循环轻松做到这一点,但我听说流简单易行,我想开始更多地使用它们。
1 回答
ibeautiful
TA贡献1993条经验 获得超5个赞
你应该使用flatMap
:
List<String> newList = listA.stream() // Stream<A> .flatMap(a->a.getB().stream()) // Stream<B> .flatMap(b->b.getC().stream()) // Stream<C> .flatMap(c->c.gtPeople().stream()) // Stream<String> .collect(Collectors.toList()); // List<String>
添加回答
举报
0/150
提交
取消