希望能给段代码。。
我有个List里面保存的是int[]数组,现在想对里面的数组进行排序,有什么好的方法吗?
int[] iarray = new int[3];
----------------------------
12, 0, 1
11, 0, 2
19, 1, 1
18, 1, 2
16, 2, 1
15, 2, 2
13, 3, 1
10, 3, 2
10, 4, 1
首先是根据int[0]的值进行排序,由小到大,然后如果存在同样的值,那么根据int[1]的值进行小到大的排序 

解决方案 »

  1.   

    Collections.sort(list,new Comparator(){
                      public int compare(Object a,Object b){
                          int[] arrA=(int[])a;
                          int[] arrB=(int[])b;
                          int i=arrA[0]-arrB[0];
                          if(i!=0) return i;
                          return arrA[1]-arrB[1];
                      }
               });
      

  2.   

    public class Test {
        public static void main(String[] args) {
            Set set = new TreeSet(new MyComparator());
            set.add(...);
            .
            .
            .
        }
    }
    class MyComparator implements Comparator {
        public int compare(Object o1, Object o2) {
            int[] intarray1 = (int[]) o1;
            int[] intarray2 = (int[]) o2;
            for (int i = 0; i < intarray1.length; i++) {
                if(intarray1[i] > intarray2[i]) 
                    return 1;
            }
            return 0;
        }
    }
      

  3.   

    treeroot(旗鲁特) ( ) 信誉:106    Blog  2006-12-14 09:40:15  得分: 0  
      
       Collections.sort(list,new Comparator(){
                      public int compare(Object a,Object b){
                          int[] arrA=(int[])a;
                          int[] arrB=(int[])b;
                          int i=arrA[0]-arrB[0];
                          if(i!=0) return i;
                          return arrA[1]-arrB[1];
                      }
               });
      
     
      

  4.   

    疏忽了class MyComparator implements Comparator {
        public int compare(Object o1, Object o2) {
            int[] intarray1 = (int[]) o1;
            int[] intarray2 = (int[]) o2;
            for (int i = 0; i < intarray1.length; i++) {
                if(intarray1[i] > intarray2[i]) 
                    return 1;
            }
            return -1;
        }
    }是return -1
      

  5.   

    呵呵 写错了  应该是
    class MyComparator implements Comparator {
        public int compare(Object o1, Object o2) {
            int[] intarray1 = (int[]) o1;
            int[] intarray2 = (int[]) o2;
            for (int i = 0; i < intarray1.length; i++) {
                if(intarray1[i] = intarray2[i]) 
                    continue;
            }
            return intarray1[i] - intarray2[i];
        }
    }Comparator 是个比较接口  定义2对象之间的大小关系
    compare 是接口定义的比较方法 参数由2个对象组成 返回值为int型,
    返回 >0 ,0 <0 分别代表 大于 等于 小于按照其中一个int[]的长度循环,先判断[0]位 如果intarray1[0] = intarray2[0] 则再比较[1]位,如果不相等 则返回他们之间的差来判断大小
      

  6.   

    class MyComparator implements Comparator {
        public int compare(Object o1, Object o2) {
            int[] intarray1 = (int[]) o1;
            int[] intarray2 = (int[]) o2;
            for (int i = 0; i < intarray1.length; i++) {
                if(intarray1[i] = intarray2[i]) 
                    continue;
                return intarray1[i] - intarray2[i];
            }
            return 0;
        }
    }