比较java中2D数组内的值

时间:2015-06-13 10:49:58

标签: java arrays multidimensional-array

我正在研究一个问题,我需要在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();
    }     
}

因此,在上面的代码中,用户在二维数组中输入值。 现在我想分别比较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//
        }
    }
}

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

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

您将整数存储在2D数组中。如果它有帮助,您可以通过考虑行和列来可视化地建模2D阵列 - 每个行和列对引用它在阵列中的相应存储位置。例如:

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

在第二个嵌套&#39; for&#39;循环(你遇到麻烦的那个),你错误地引用了你的2D数组的值。请记住,您必须指定要引用的对 - arr [int] [int]。

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

您修改后的嵌套&#39; for&#39;循环语法准确&#39; if&#39;语句:

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");

答案 2 :(得分: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//
         }
      }
   }