如何将List <object []>转换为Stream <object>

时间:2019-01-23 08:34:05

标签: java spring java-8 java-stream

我有一个本地查询,该查询返回一个List<Object[]>。 我想将此List转换为Stream<Object>。 这些对象是数据库中不同表中的不同列。

什么是最好的解决方案?

创建DTO并将List<DTO>转换为Stream<DTO>吗?我该怎么办?

2 个答案:

答案 0 :(得分:9)

假设您的DTO类具有适当的构造函数,则可以编写如下内容:

List<Object[]> input = ...
Stream<DTO> dtos = input.stream().map(arr -> new DTO(arr[0], arr[1], ... , arr[n]);

答案 1 :(得分:9)

使用flatMap

List<Object[]> objectsList = new ArrayList<>();
Stream<Object> objectStream = objectsList.stream()
        .flatMap(Arrays::stream);