我有Stream<Student[]>
个对象,我需要收集List<Student>
如果我使用obj.collect(Collectors.toList())
,那么我会List<Student[]>
有没有更好的方法来转换?
答案 0 :(得分:5)
List<Object> flat = objArrs.stream()
.flatMap(Stream::of)
.collect(Collectors.toList());
或
List<Object[]> list = ...
List<Object> l = list.stream()
.flatMap(arr -> Stream.of(arr))
.collect(Collectors.toList());
答案 1 :(得分:2)
这个怎么样?您可以使用Stream#flatMap将Student[]
中的所有List
合并在一起。
stream.flatMap(students-> Stream.of(students)).collect(Collectors.toList());
文档说:
flatMap()操作具有将一对多转换应用于流的元素,然后将生成的元素展平为新流的效果。