我搜索了类似的问题,但只找到了不适用于这种情况的对象String:
想使用流将List<List<Integer>> list
转换为int[][] array
到目前为止,我知道了:
int[][] array= list.stream().map(List::toArray)...
我以发现的其他类似问题作为基础。但是这些使用字符串,并且不能使它适用于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);
答案 0 :(得分:2)
您只需要对String[][]
解决方案进行一些修改:
List<List<Integer>> lists = ...;
int[][] arrays = lists.stream() // Stream<List<Integer>>
.map(list -> list.stream().mapToInt(i -> i).toArray()) // Stream<int[]>
.toArray(int[][]::new);
mapToInt(i -> i)
将每个Integer
拆箱(即Integer
→int
)。
请参阅: