【发布时间】:2016-08-08 17:33:13
【问题描述】:
我有以下场景
Object A has
-- List<B>
-- List<C>
-- Object A
对象 A 包含:List<B> 和 List<C>
在遍历给定对象“A”后,我想在 List 中收集所有类型为“B”的对象。
注意: List<C> 可能包含对象“A”,因此迭代变为递归。
I/P: Object A = {List<B>,List<C>}
O/P: List<B>//list of all objects of type B
在 JAVA 8 中迭代并将“B”类型的对象收集到列表的最佳方法是什么。
谢谢
【问题讨论】:
-
我们是否假设
list是List<List<A>>和B extends A? -
您将不得不递归地遍历根列表中的所有项目,然后遍历那些列表类型的项目。每次迭代都会返回 List,您只需将一个与下一个组合起来。
-
到目前为止你写过一些代码吗?
-
显然 Java 标记让你投了很多反对票
-
子列表可以有其他子列表吗?
标签: list recursion collections java-8