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

Fiz*_*k26 4 java spring java-8 java-stream

我有一个返回a的本机查询List<Object[]>.我想将其转换ListStream<Object>.这些对象是我的数据库的不同表中的不同列.

这样做的最佳解决方案是什么?创建一个DTO并将其转换List<DTO>Stream<DTO>?我怎样才能做到这一点?

Era*_*ran 9

假设你的DTO类有一个合适的构造函数,你可以写这样的东西:

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

  • 说实话,我从你的回答中理解了这个问题. (4认同)

J-A*_*lex 9

用途flatMap:

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