【发布时间】:2017-04-21 09:45:31
【问题描述】:
有一个简单的:
public class Task{
private String name;
private List<Task> subtasks;
}
和Task 对象的列表。如何使用stream() 将每个Task 的列表作为subtask 获取。
我试过这个:
List<Task> subtasks = myTask.stream().map(x -> x.getSubtasks()).collect(Collectors.toList());
但它返回List<List<Task>>。将数组从map() 加入到现有结果的最佳方法是什么?
【问题讨论】:
-
子任务可以有子任务吗?
-
使用
flatMap(x -> x.getSubtasks().stream())而不是你的map() -
@Holger 好点,错过了它在
Task中使用Task。如果兔子洞没有更深,那个副本应该可以。 -
@Kayaman:我为递归情况添加了另一个......