Java 如何在2d ArrayList中找到对角线元素的和?

Java 如何在2d ArrayList中找到对角线元素的和?,java,matrix,arraylist,multidimensional-array,sum,Java,Matrix,Arraylist,Multidimensional Array,Sum,我不知道如何访问2DArrayList中的元素。我需要在2DArrayList中找到对角线的和 列表arrint diagnolSum=0; int diagnolSum = 0; for (int i = 0; i < arr.size(); i++) { diagnolSum += arr.get(i).get(i); } 对于(int i=0;i

我不知道如何访问2D
ArrayList
中的元素。我需要在2D
ArrayList
中找到对角线的和

列表arr

int diagnolSum=0;
    int diagnolSum = 0;

    for (int i = 0; i < arr.size(); i++) {
        diagnolSum += arr.get(i).get(i);
    }
对于(int i=0;i
我看到你在问题中使用了对角线。矩阵有两条对角线,主对角线(
\
)和反对角线(
/

假设您的矩阵、2d数组或2d arrayList(无论您调用什么)是
i*i
矩阵,您可以在循环中计算:

int leadingDiagonalSum = 0, antiDiagonalSum = 0;
int size = arr.size();

for (int i = 0; i < size; i++) {
    leadingDiagonalSum += arr.get(i).get(i);
    antiDiagonalSum += arr.get(i).get(size - i - 1);
}
int-leading对角线和=0,反对角线和=0;
int size=arr.size();
对于(int i=0;i
以上代码很容易理解。如果您确实想要对角线之和,可以添加这两个变量

但是,您应该检查
大小
,如果它是奇数,您应该在总和之后减去中心元素一次。
公共静态int对角线差(列表arr){
public static int diagonalDifference(List<List<Integer>> arr) {

        int size = arr.size();
        int add1=0;
        int add2=0;
        for(int i=0 ; i < size ; i++){
           add1 = add1+  arr.get(i).get(i);
           add2 = add2+ arr.get(i).get(size -i-1);

        }

        int absoluteValue =Math.abs( add1 - add2);

        return absoluteValue;

    }
int size=arr.size(); int add1=0; int add2=0; 对于(int i=0;i
value=list.get(i).get(i)谢谢你,先生!!解释您的答案尽管您的答案很好地解释了如何访问2D arraylist元素的问题。函数结果基本上返回前导元素和反对角元素之和的差。您应该在代码中添加一些解释作为最佳实践。@Debi我会确保这样做。谢谢