2011-11-05 186 views
1

例如:如何根据第二个对二维数组中的第一列进行排序?

我在数组中的第一列首先按数字顺序排列。第二列是数字随机的。我想按顺序放置第二列,这当然会强制第一列不按顺序排列。任何想法如何在java中做到这一点。我搜索了,但似乎无法找到正确找到它的词汇。

+0

这是很好的向我们展示样品输入和结果你想要的。 –

+0

猜你是否通过了该作业。 –

回答

4

您可以使用的方法是Arrays.sort()之一,您可以在其中定义自己的比较器,它可以比较二维数组的两行。

下面的代码分配了一个有两列和十行的数组,第一列排序,第二列完全随机。然后根据第二栏对其进行分类。

class Test{ 

    static void print(int[][] a){ 
     for (int i=0;i<a.length;i++){ 
      for (int j=0;j<a[0].length;j++) 
       System.out.print(a[i][j]+" "); 
      System.out.println(); 
     } 
    } 

    public static void main(String[]args){ 

     java.util.Random r = new java.util.Random(); 
     int[][] a = new int[10][2]; 
     for (int i=0;i<a.length;i++){ 
      a[i][0]=i+1; 
      a[i][1]=r.nextInt(100); 
     } 

     print(a); 
     System.out.println(); 

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

     print(a); 
    } 
} 

输出示例:

1 8 
2 49 
3 82 
4 89 
5 8 
6 0 
7 83 
8 89 
9 8 
10 46 

6 0 
1 8 
5 8 
9 8 
10 46 
2 49 
3 82 
7 83 
4 89 
8 89 
+0

非常感谢!这应该让我完成。 – NJGUY

相关问题