我有一个带有很多零和一些其他值的二维数组。第一步,我将一列中的所有行加起来以找出每一列的总和。总和的结果保存在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]);
        }
    }
}


一切工作正常,直到将数组值与arraylist的值进行比较。

最佳答案

您正在将一个整数与列表进行比较,而不是与列表中相应的列值之和进行比较。

如果excelMatrixInteger数组,请执行以下操作:

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


除此以外,

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

09-11 12:42