java:在同一列上比较2D数组的值和arraylist的值

java:在同一列上比较2D数组的值和arraylist的值,java,arrays,arraylist,multidimensional-array,Java,Arrays,Arraylist,Multidimensional Array,我有一个二维数组,有很多零和其他值。在第一步中,我将一列中的所有行相加,以找出每列的总和。求和的结果保存在arraylist中。 现在我需要比较2D数组中的每个值,如果它等于arraylist中它的列的和。如果相等,则行的第一个值将保存在单独的arraylist中 例如: {A, 0, 0, 6, 0} {B, 0, 2, 0, 2} {C, 0, 1, 0, 0} {D, 3, 0, 0, 2} Arraylis

我有一个二维数组,有很多零和其他值。在第一步中,我将一列中的所有行相加,以找出每列的总和。求和的结果保存在arraylist中。 现在我需要比较2D数组中的每个值,如果它等于arraylist中它的列的和。如果相等,则行的第一个值将保存在单独的arraylist中

例如:

          {A, 0, 0, 6, 0}
          {B, 0, 2, 0, 2}
          {C, 0, 1, 0, 0}
          {D, 3, 0, 0, 2}

Arraylist    {3, 3, 6, 4}
我想将每个值与arraylist中相同位置的值进行比较

到目前为止,我的代码是:

List sumList = new ArrayList();
for(int c = 1; c < excelMatrix.length; c++){
    int sum = 0;
    for(int r = 0; r < excelMatrix.length-1; r++){
        sum = excelMatrix[r][c] + sum;
        sumList.add(sum);
    }
}

List checkList = new ArrayList();
for(int c = 1; c < excelMatrix.length; c++){
    for(int r = 0; r < excelMatrix.length-1; r++){
        if(excelMatrix[r][c].equals(sumList)){
            checkList.add(excelMatrix[r][0]);
        }
    }
}
List-sumList=new-ArrayList();
for(int c=1;c

在将数组值与arraylist的值进行比较之前,一切都正常。

您将整数与列表进行比较,而不是与列表中列值的对应和进行比较

如果
excelMatrix
Integer
array,请按以下方式执行:

if(excelMatrix[r][c].equals(sumList.get(c-1)))
否则,

if(excelMatrix[r][c] == sumList.get(c-1))

您将整数与列表进行比较,而不是与列表中列值的对应和进行比较

如果
excelMatrix
Integer
array,请按以下方式执行:

if(excelMatrix[r][c].equals(sumList.get(c-1)))
否则,

if(excelMatrix[r][c] == sumList.get(c-1))

您没有在示例代码中指定类型,因此我假设如下:

    String[][] excelMatrix = {{"A", "0", "0", "6", "0"},
                              {"B", "0", "2", "0", "2"},
                              {"C", "0", "1", "0", "0"},
                              {"D", "3", "0", "0", "2"}};

    List<String> sumList = new ArrayList<>();
    sumList.add("3");
    sumList.add("3");
    sumList.add("6");
    sumList.add("4");
最后

    for(int i = 0; i<checkList.size(); i++){
        System.out.print(checkList.get(i));
    }

for(int i=0;i示例代码中没有指定类型,因此我假设如下:

    String[][] excelMatrix = {{"A", "0", "0", "6", "0"},
                              {"B", "0", "2", "0", "2"},
                              {"C", "0", "1", "0", "0"},
                              {"D", "3", "0", "0", "2"}};

    List<String> sumList = new ArrayList<>();
    sumList.add("3");
    sumList.add("3");
    sumList.add("6");
    sumList.add("4");
最后

    for(int i = 0; i<checkList.size(); i++){
        System.out.print(checkList.get(i));
    }

for(int i=0;i这与您要查找的答案完全无关。您用于计算列元素之和的代码是错误的。请使用下面的代码获得正确的和列表

   List sumList = new ArrayList();
        for(int c = 0; c < excelMatrix.length; c++){
            int sum = 0;
            for(int r = 0; r < excelMatrix.length; r++){
                sum = excelMatrix[r][c] + sum;
                System.out.println(sum);

            }
            sumList.add(sum);
        }
List-sumList=new-ArrayList();
对于(int c=0;c
这与您要查找的答案完全无关。您用于计算列元素总和的代码是错误的。请使用下面的代码获得正确的总和列表

   List sumList = new ArrayList();
        for(int c = 0; c < excelMatrix.length; c++){
            int sum = 0;
            for(int r = 0; r < excelMatrix.length; r++){
                sum = excelMatrix[r][c] + sum;
                System.out.println(sum);

            }
            sumList.add(sum);
        }
List-sumList=new-ArrayList();
对于(int c=0;c
对于检查条件,将其设置为->for(int r=0;rfor(int r=0;r