2014-02-23 49 views
0

我有以下的二維數組,我想比較所有的列彼此。按列分析二維數組

int [][] myarray={{1,2,3},{1,2,3},{1,2,3}}; 

所以我想看到的是如果列1(全1)等於列2(全部2)的值。

Ps。數組大小不僅限於此。

+0

您是否希望返回一個簡單的真/假?如果他們都是平等的,並且假如有差異,那麼這是真的? –

+0

是的! @DavidWallace – Eddy221

回答

0

從您的問題中不太清楚您是否要比較所有列彼此之間,或者只是一列到另一個單列(例如第1列到第2列)。假設你的意思是後者,你可以這樣做。

public boolean columnsIdentical(int[][] array, int colIndex1, int colIndex2) { 
    for (int row = 0; row < array.length; row++) { 
     if (array[row][colIndex1] != array[row][colIndex2]) { 
      return false; 
     } 
    } 
    return true; 
} 
0
for (int i=0;i<myarray[0].length;i++) { 
    int comp=myarray[0][i]; 
    for (int j=1;j<myarray.length;j++) { 
     if (myarray[j][i] != comp) { 
      // no match 
     } else { 
      // match 
     } 
    } 
} 
0

測試所有列對需要3個迴路

  1. 最裏面比較
  2. 中東遍歷B柱A的元素和B,跳過欄已被選中
  3. 最外層循環至A對於所有列