当前位置: 首页 > 知识库问答 >
问题:

二进制运算符的操作数类型错误+第一种类型int[]和第二种类型int

弓宏茂
2023-03-14

我试图访问使用一维数组映射定义的二维矩阵的值,并希望将该特定索引值存储在一个变量中。

该矩阵包含整数值,利用二维矩阵到一维数组映射的概念,得到“二元运算符操作数类型错误+第一类INT[]和第二类INT”的错误。

D = fill[ (i-1) * seq_2.length + (j-1)]

我试图访问矩阵fill中的诊断值,即fill[i-1][j-1],并希望将其存储在变量D seq_2中。length是矩阵中列的大小。

代码是

for (i = 1; i <= (seq_1.length); i++) {
    for (j = 1; j <= (seq_2.length); j++) {            

        D = fill[ (i-1) * seq_2.length + (j-1)];

    }
}

共有1个答案

白坚壁
2023-03-14

您是说fillint类型的二维数组,而d是一个基元类型的整数...由于试图将fill二维数组的第一个维度赋给一个原始数据类型int,您会得到错误二进制运算符+第一个类型int[]和第二个类型int的操作数类型错误。请考虑以下示例:

int[][] array = {{1,2},{3,4}}; // 2D array of type int as an example
        for(int i=0; i<2; i++){
            System.out.println(array[i]); // this basically is getClass().getName() + '@' + Integer.toHexString(hashCode())
            for(int j=0; j<2; j++){
                System.out.println(array[j]); 
                System.out.println(array[i][j]);// this prints out the actual value at the index 
            }       
        }       
    }

输出:

[I@15db9742
[I@15db9742
1
[I@6d06d69c
2
[I@6d06d69c
[I@15db9742
3
[I@6d06d69c
4

此外,如果您想计算正方形2D数组的对角线值,您可以做例如:

int[][] array = {{1,2,3},{4,5,6}, {7,8,9}};
int diagonalSum = 0;
for(int i=0; i<3; i++, System.out.println()){
     for(int j=0; j<3; j++){
        System.out.print(array[i][j]+"\t");
        if(j==i){
            diagonalSum+=array[i][j];
        }
     }  
}   
System.out.println("\nDiagonal Value is: " + diagonalSum);

输出:

1   2   3   
4   5   6   
7   8   9   

Diagonal Value is: 15
 类似资料: