【发布时间】:2019-10-20 16:07:27
【问题描述】:
我有一个这样的方法,我在 Streams 中使用递归:
private static List<Member> convertToFlatList(List<Member> memberList)
{
return memberList.stream().flatMap(i -> Stream.concat(Stream.of(i), convertToFlatList(i.getChildren()).stream())).collect(Collectors.toList());
}
假设Member 类有一个子成员列表,该列表始终初始化为一个空列表。在这里,我正在做的是将成员的分层列表转换为平面列表。我理解那部分。我不明白的是这里的递归是如何工作的。
在递归中,它在满足某些条件时终止。但在这里我没有给出任何有意终止的条件。那么终止部分在这里是如何工作的呢?
【问题讨论】:
-
遍历 memberList 中的所有项目后结束。
标签: java recursion java-8 java-stream