如何将列表<int[]>转换为二维数组?

问题描述 投票:0回答:2

我有一个像这样声明的数组列表:

List<int[]> ls = new ArrayList<int[]>();

在这里,我试图保留一个包含这样的数组的列表: [ [1,2,3] ,[2,3],[4,5] ]

要将数组添加到此列表,我在 for 循环中执行此操作:

int[] a = new int[2];
a[0] = arr[i];
a[1] = arr[i]+k;
ls.add(a);

我想将这个数组列表转换为具有 1 行和 list.size 的矩阵,如下所示:

[[0, -1], [-1, -2], [2, 1], [1, 0]]

我该怎么做?

谢谢!

java list matrix
2个回答
7
投票

简单,调用 toArray:

// new double-dimension int array
//                   | conversion here
//                   |                  | specifying 1st dimension's size as list's 
//                   |                  | size
int[][] converted = ls.toArray(new int[ls.size()][]);

// test it
System.out.println(Arrays.deepToString(converted));

0
投票
int[][] arr = ls.toArray(new int[0][0]);

对于非古老版本的 Java(OpenJDK 6 及以上),建议将空数组传递给

toArray()
方法,而不是大小分配的数组。

© www.soinside.com 2019 - 2024. All rights reserved.