理解java中的stream.map

May*_*day 0 java arrays list java-8 java-stream

我在 Java 中启动了一些 SQL 查询,它会返回一些如下所示的数据:

[ ID ,Description,WhateverColumn,...,..., ImportantNumber ]

样本:

[ 1 ,"Desc",...,..., 1 ]

[ 1 ,"Desc",...,..., 2 ]

[ 1 ,"Desc",...,..., 3 ]

[ 2 ,"Desc",...,..., 1 ]

[ 3 ,"Desc",...,..., 3 ]

[ 3 ,"Desc",...,..., 5 ]

我正在使用以下列表将其存储在内存中:

List<Object[]> myList = queryLaunched(...);
Run Code Online (Sandbox Code Playgroud)

后来,我希望做一些操作这个ListObject[]

[[1,"Desc",...,...,1],[1,"Desc",...,...,2],...]

我正在尝试通过以下方式使用 stream.map :

myList.stream().map(item -> System.out.println(item.toString()));
Run Code Online (Sandbox Code Playgroud)

但我只是收到这个错误:

类型不匹配:无法转换Stream<Object>void

无论我在 google 的哪个地方看,我都只能找到用 制作的样品List<Class>,而不是用List<Object[]>.

我怎样才能打印,因此,在它之后,开始对该列表中的每个项目进行操作?

Era*_*ran 5

map用于将 a 转换Stream<TypeA>为 a Stream<TypeB>。为了打印元素,不要使用map.

您可以使用终端操作:

myList.stream().forEach(item -> System.out.println(Arrays.toString(item)));
Run Code Online (Sandbox Code Playgroud)

或中间操作(可以跟随附加操作):

myList.stream().peek(item -> System.out.println(Arrays.toString(item)))... ;
Run Code Online (Sandbox Code Playgroud)

由于您的元素是数组,您应该使用System.out.println(Arrays.toString(item)).