【发布时间】:2020-02-19 15:28:56
【问题描述】:
我正在尝试将 2D 列表转换为 Java 中的 2D ArrayList 然后,我将 2D ArrayList 转换为 2D Array 并实现 for 循环以返回矩阵的 2 个对角线的绝对差。
如何将 2D ArrayList arr 转换为 2D ArrayList?
这是我目前尝试将输入 List 转换为 ArrayList 的工作:
public static int diagonalDifference(List<List<Integer>> arr) {
//first: 2D List --> 2D ArrayList
int[][] a = new int[arr.size()][];
for (int i=0; i<arr.size(); i++) {
List<Integer> row = arr.get(i);
a[i] = row.toArray(new int[row.size()]);
//second: 2D ArrayList --> int[][]
//third: nested for loop through int[][]to difference between diagonals of 2d array
}
这是我目前的完整代码。
public static int diagonalDifference(List<List<Integer>> arr) {
List<List<Intger>> arrList = new ArrayList<>();
int[][] a = new int[arr.size()][];
for (int i=0; i<arr.size(); i++) {
List<Integer> row = arr.get(i);
a[i] = row.toArray(new int[row.size()]);
}
int pri = 0;
int sec =0;
for(int i=0; i<a.length; i++) {
for(int j=0; j <a.length; j++) {
if (a[i] == a[j]) {
pri += a[i];
}
if (i == a.length - j - 1) {
sec += a[i];
}
}
}
return Math.abs(pri - sec);
}
【问题讨论】:
-
Array[][]你确定吗?什么是等待输出?你在找Integer[][] -
可以使用
ArrayList(Collection<?> collection)构造函数(例如ArrayList<Integer> arrayList = new ArrayList<>(arr.get(i));)从任何List创建ArrayList。 -
这很不清楚。首先它说“将 2D 列表转换为 2D ArrayList”,然后它说“将 2D ArrayList arr 转换为 2D ArrayList”并且在代码中有
int[][] -
@SharonBenAsher 我想转换 2D List --> 2D ArrayList --> 2D ARRAY
-
是的,@YCF_L,我的意思是说我正在寻找 int[][]
标签: java list matrix arraylist