我有一个整数的二维ArrayList(例如列表)
ArrayList<ArrayList<Integer>> list=new ArrayList<ArrayList<Integer>>()
// 假设值已分配
我想将其转换为Java中原始int的二维数组。像一维案例一样,如何使用Steam来实现这一点
ArrayList<Integer> x = new ArrayList<Integer>();
int[] arr = x.stream().mapToInt(i -> i).toArray();
答案 0 :(得分:1)
您可以执行以下操作:
int[][] arr = list.stream()
.map(l -> l.stream()
.mapToInt(Integer::intValue)
.toArray())
.toArray(int[][]::new);
每个内部List
被映射到int[]
(首先将其转换为IntStream
),然后将Stream<int[]>
转换为int[][]