2012-11-07 51 views
-1

我想在java中排序2d数组。第一列是描述一种权限的int,第二列是描述应用程序类别的另一个整数。 我想排序第一列离开第二个,因为它是。 因此,例如,如果我把参数[0] [0],我将返回该类别中最常用的权限。排序java中的多维数组

对不起我的英文不好,并感谢您的帮助

+1

你可以添加一些代码,你可能已经尝试? – Vinit

+0

[Sorting Java Multidimensional Array]可能重复(http://stackoverflow.com/questions/10076982/so​​rting-java-multidimensional-array) – Mike

回答

0

希望这有助于:

class 2DcolumnComparator implements Comparator { 
     private int columnToSortOn; 

     2DcolumnComparator(int columnToSortOn) { 
     this.columnToSortOn = columnToSortOn; 
    } 

    public int compare(Object o1, Object o2) { 
    String[] row1 = (String[])o1; 
    String[] row2 = (String[])o2; 

    return row1[columnToSortOn].compareTo(row2[columnToSortOn]); 
    } 
    } 
+0

显示某人如何使用比较器可能很有用。即。 Arrays.sort() –

+0

虽然'Comparator'可能是要走的路(我有一种感觉OP已经遗漏了一些重要信息),通常使用通用版本更好。 –

2

使用Arrays#sort(T[],Comparator<? super T>)功能

 int array [][] = {{1,11},{2,34},{3,8},{8,4},{7,23}}; 

     java.util.Arrays.sort(array, new java.util.Comparator<int[]>() { 
      public int compare(int[] a, int[] b) { 
       return b[0] - a[0]; 
      } 
     });