将二维ArrayList转换为二维数组

时间:2020-05-24 05:24:10

标签: java arrays arraylist

我有一个整数的二维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();

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

int[][] arr = list.stream()
                  .map(l -> l.stream()
                             .mapToInt(Integer::intValue)
                             .toArray())
                  .toArray(int[][]::new);

每个内部List被映射到int[](首先将其转换为IntStream),然后将Stream<int[]>转换为int[][]