2014-02-23 27 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对于所有列