使用java流将Stream <object []>转换为List <object>

时间:2017-06-01 16:18:24

标签: java java-8 java-stream

我有Stream<Student[]>个对象,我需要收集List<Student>

如果我使用obj.collect(Collectors.toList()),那么我会List<Student[]>

有没有更好的方法来转换?

2 个答案:

答案 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#flatMapStudent[]中的所有List合并在一起。

stream.flatMap(students-> Stream.of(students)).collect(Collectors.toList());

文档说:

  

flatMap()操作具有将一对多转换应用于流的元素,然后将生成的元素展平为新流的效果。