我有一个这样的方法,在其中我使用带递归的流:
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
类拥有一个成员列表,该列表始终被初始化为空列表。我这里所做的是将成员的分层列表转换为平面列表。我理解这一部分。但我不明白的是递归在这里如何工作。
在递归中,当满足某些条件时它才会停止。但在这里我故意没有给出任何终止条件。那么终止部分是如何工作的呢?