在 java 中比较二维数组中的值



我正在处理一个问题,我需要在java中比较2D数组中的值。例如:

int N = 2, c = 2;
int [][] arr = new int[N][c];
System.out.println("Enter the values to a 2D array: ");
for(int i=0; i<N;i++) {
    for (int j=0;j<c;j++) {
        arr[i][j]=in.nextInt();
    }     
}
因此,在

上面的代码中,用户在 2d 数组中输入值。现在我想比较arr[i]>=0arr[j]>=0是否分别,如果是,我需要对此执行其他一些操作。

但我不能那样做。例:

for(int i=0; i<N;i++) {
    for (int j=0;j<c;j++) {
        if (arr[i]>=0 && arr[j]>=0) {
            //Some operation//
        }
    }
}

请向我建议一种执行此操作的方法 - 单独比较值。谢谢。

arr1[i]是一个整数数组,而不是整数,因此您无法将其与整数进行比较。 arr1[i][j]是一个int,可以与整数进行比较。

if (arr[i][j]>=0)是一个有效的语法,但不清楚这是否是你想要的。

要比较二维数组的值,您应该检查该数组的每个值。

2x2 阵列

当 i=0, j=0

x .

当 i=0, j=1

x

当 i=1 时,j=0

x .

当 i=1, j=1

x

   for(int i=0; i<N;i++) {
      for (int j=0;j<c;j++) {
         if (arr[i][j]>=your_comparable_value ) {
             //Some operation//
         }
      }
   }

您正在将整数存储在二维数组中。如果有帮助,您可以通过考虑行和列来直观地对 2D 数组进行建模 - 每行和列对都引用它在数组中各自的存储位置。例:

arr[0][1] = 5; // sets the value of row [0] column [1] to 5

在第二个嵌套的"for"循环(您遇到问题的循环)中,您错误地引用了 2D 数组的值。请记住,您必须指定要引用的对 - arr[int][int]。

if (arr[i]>=0 && arr[j]>=0); //  incorrect way of referencing the desired respective location in the 2D array

您修改后的嵌套"for"循环,其中包含语法准确的"if"语句:

for(int i=0; i<N; i++)
    for (int j=0; j<c; j++) // side note: consider using final constant(s) replacing variables N and c. In your case, you are explicitly referencing two integers that store the same value - 2
        if (arr[i][j]>=0)
            System.out.println("Array Position [" + i + "][" + j + "] is greater than or equal to 0");

相关内容

  • 没有找到相关文章

最新更新