我想转换 List<List<Integer>>
到java中的二维数组中。我可以用下面的代码做到这一点,但问题是我的二维数组使用的是基元数据类型。
Integer[][] array = new Integer[resultList.size()][];
for (i = 0; i < resultList.size(); i++) {
ArrayList<Integer> row = (ArrayList<Integer>) resultList.get(i);
array[i] = row.toArray(new Integer[row.size()]);
}
听起来你想要的是一个 int[][]
而非 Integer[][]
.在这种情况下,我会选择:
int[][] result = resultList.stream()
.map(l -> l.stream().mapToInt(e -> e).toArray())
.toArray(int[][]::new);
你可以通过迭代来实现 List<List<Integer>>
的元素,并复制 List<Integer>
的相应行中。int [][] array
.
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
List<List<Integer>> list = List.of(List.of(10, 20), List.of(5, 15));
int[][] array = new int[list.size()][];
for (int i = 0; i < list.size(); i++) {
array[i] = new int[list.get(i).size()];
for (int j = 0; j < list.get(i).size(); j++) {
array[i][j] = list.get(i).get(j);
}
}
// Display array[][]
System.out.println(Arrays.deepToString(array));
}
}
产量:
[[10, 20], [5, 15]]