出于某种原因,我无法解决如何使用流将这个深层嵌套列表转换为新列表的问题.
every A in List<A> contains ->
List<B> where every B contains ->
List<C> where every C contains -> List<String>
Run Code Online (Sandbox Code Playgroud)
我尝试了许多不同的迭代,如:
List<String> newlist = listA.getB()
.stream()
.filter(b -> b.getC()
.stream()
.filter(c -> c.getPeople)
.collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)
我充满了困惑......我可以通过for循环轻松完成这项工作,但我听说流简单易用,我想开始更多地使用它们.
Era*_*ran 11
你应该使用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>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |