Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中将2D列表转换为2D ArrayList_Java_List_Matrix_Arraylist - Fatal编程技术网

在Java中将2D列表转换为2D ArrayList

在Java中将2D列表转换为2D ArrayList,java,list,matrix,arraylist,Java,List,Matrix,Arraylist,我正在尝试用Java将2D列表转换为2D ArrayList 然后,我将2D ArrayList转换为2D数组,并实现for循环以返回矩阵的2条对角线的绝对差 如何将2D ArrayListarr转换为2D ArrayList 以下是我迄今为止尝试将输入列表转换为ArrayList的工作: public static int diagonalDifference(List<List<Integer>> arr) { //first: 2D List --

我正在尝试用Java将2D列表转换为2D ArrayList 然后,我将2D ArrayList转换为2D数组,并实现for循环以返回矩阵的2条对角线的绝对差

如何将2D ArrayList
arr
转换为2D ArrayList

以下是我迄今为止尝试将输入列表转换为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
    }
公共静态int对角线差(列表arr){
//第一个:二维列表-->二维阵列列表
int[][]a=新int[arr.size()][];
对于(int i=0;i int[]
//第三个:嵌套for循环,通过int[][]来计算2d数组对角线之间的差
}
这是我到目前为止的全部代码

 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);

}
公共静态int对角线差(列表arr){
List arrList=new ArrayList();
int[][]a=新int[arr.size()][];

对于(int i=0;i我认为您正在寻找:

public static int[][] diagonalDifference(List<List<Integer>> arr) {
    return arr.stream()
            .map(a -> a.stream().mapToInt(Integer::valueOf).toArray())
            .toArray(int[][]::new);
}
public static int[][]对角线差(列表arr){
返回arr.stream()
.map(a->a.stream().mapToInt(Integer::valueOf).toArray())
.toArray(int[]]::新建);
}

这也应该有效:我刚刚测试过


row.stream().mapToInt(Integer::intValue).toArray();

Array[]][/code>你确定吗?等待的输出是什么?你在寻找
Integer[][/code>吗
ArrayList
可以使用
ArrayList(集合)
构造函数从任何
列表创建
ArrayList(arr.get(i));
)。这很不清楚。首先它说“将2D列表转换为2D ArrayList”,然后它说“将2D ArrayList arr转换为2D ArrayList”,代码中有
int[][
@SharonBenAsher我想转换2D列表-->2D ArrayList-->2D Arrayys,@YCF_L,我的意思是说我正在寻找int[][]这是在转换为整数对象数组,不是吗?但他正在寻找int[][]数组?两者都是相同的?很好。未能测试解决方案是一个很好的方法,会让mods和审阅者大吃一惊。