在这种特定情况下,如何使用流获取列表列表?

这回来了:

我有一些类似下面的类:

Class A {
    private String name;
    private List<B> b;
    // getters and setters
}
Class B {
    private String name;
    private List<C> c;
    // getters and setters
}
Class C {
    private String name;
    private List<D> d;
    // getters and setters
}
Class D {
    // properties
    // getters and setters
}

现在我有一个type列表A我想要做的是获取包含其他类型的列表的列表,D如下所示:

List<List<D>>

我已经尝试过使用这样的东西flatMap

listA.stream()
     .flatMap(s -> s.getB.stream())
     .flatMap(s -> s.getC.stream())
     .flatMap(s -> s.getD.stream())
     .collect(Collectors.toList());

但这会将类型的所有元素收集D到一个列表中:

List<D>

有人可以帮忙吗?

他们是:

如果您想要List<List<D>>一个,则少用一个flatMap

List<List<D>> ds = listA.stream() // creates Stream<A>
                        .flatMap(s -> s.getB().stream()) // creates Stream<B>
                        .flatMap(s -> s.getC().stream()) // creates Stream<C>
                        .map(s -> s.getD()) // creates Stream<List<D>>
                        .collect(Collectors.toList());

要么

List<List<D>> ds = listA.stream() // creates Stream<A>
                        .flatMap(s -> s.getB().stream()) // creates Stream<B>
                        .flatMap(s -> s.getC().stream()) // creates Stream<C>
                        .map(C::getD) // creates Stream<List<D>>
                        .collect(Collectors.toList());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用lastInsertId在这种情况下?

如何在这种情况下,与流返回列表?

MYSQL:在这种情况下如何选择特定的行?

在这种特定情况下,如何阻止Eclipse缩进多余的空格?

在这种特定情况下,模仿Go中继承的最惯用方式是什么?

在这种情况下,如何获取标签文本?

在这种情况下如何使用np.stack?

在这种特定情况下,如何使用SQL仅检索与日期字段的最后一个值相关的记录?

在这种情况下,球拍流如何工作?

在这种情况下,如何制作子列表列表?

在这种情况下如何使用python lambda

在这种特定情况下,我们可以使用android数据绑定替换findViewById()吗?

jQuery:在这种特定情况下,如何恢复点击事件的初始状态?

在特定情况下如何使用高阶结构

在特定情况下使用Python进行列表理解

在这种情况下,如何从列表理解转到循环?

在这种特定情况下,更快的IO会导致结果变慢

在这种特定情况下,使用apt-get autoremove命令安全吗?

在这种情况下如何访问特定的JSON数据?

在这种特定情况下,如何修复损坏的包装?

后缀运算符在这种特定情况下(JAVA)如何工作?

在这种情况下如何获取gridview单元的值

在这种特定情况下,如何设计类以共享其方法声明?

在这种特定情况下,目录权限和文件权限之间的差异

在这种情况下如何使用decltype

在这种情况下什么更快:搜索列表或字典?

在 python 中, input() 函数在这种特定情况下对我不起作用

在这种特定情况下 {xor} 的确切含义是什么?

在这种特定情况下,如何使用 javascript 删除 HTML 元素