为了账号安全,请及时绑定邮箱和手机立即绑定

Java Streams和List of List

Java Streams和List of List

天涯尽头无女友 2022-06-04 17:21:41
出于某种原因,我无法理解如何使用流将这个深度嵌套的列表变成一个新列表。   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>


查看完整回答
反对 回复 2022-06-04
  • 1 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信