使用 Streams 将嵌套整数列表转换为二维数组 ( List<List<Integer>> -> int[][] )

jpi*_*ncz 0 java java-8 java-stream

我搜索了类似的问题,但我只发现了不适用于这种情况的对象字符串:

想要转换List<List<Integer>> listint[][] array使用流

到目前为止我得到了这个:

int[][] array= list.stream().map(List::toArray)...
Run Code Online (Sandbox Code Playgroud)

我以我发现的其他类似问题为基础。但这些使用 String 并且不能使其适用于 Integers->int:

// Example with String 1:    
String[][] array = list.stream()
        .map(l -> l.stream().toArray(String[]::new))
        .toArray(String[][]::new);

// Example with String 2:    
    final List<List<String>> list = ...;
    final String[][] array = list.stream().map(List::toArray).toArray(String[][]::new);
Run Code Online (Sandbox Code Playgroud)

Sla*_*law 5

您只需对解决String[][]方案进行一些修改:

\n\n
List<List<Integer>> lists = ...;\nint[][] arrays = lists.stream()                                // Stream<List<Integer>>\n        .map(list -> list.stream().mapToInt(i -> i).toArray()) // Stream<int[]>\n        .toArray(int[][]::new);\n
Run Code Online (Sandbox Code Playgroud)\n\n

正在mapToInt(i -> i)拆箱每个Integer(即Integer\xe2\x86\x92 int)。

\n\n

看:

\n\n\n