class A{
 String A1;
 String A2;
 String A3;
...
}
}
现有个数组A[] voA,需要对voA里的对象进行排序,按照A1和A2的顺序。
大概的编码方式该怎么弄?用冒泡或者插入的方式排序有个问题,就是有voA[i].A1与voA[j].A1相同。整数类型可以用>=方式,字符串呢?

解决方案 »

  1.   

    java.util.Arrays.sort(voA, new Comparator<A>() {
      public int compareTo(A a1, A a2) {
        int result = a1.A1.compareTo(a2.A1);
        if(result != 0)
          return result;
        return a1.A2.compareTo(a2.A2);
      }
    });
      

  2.   

    Arrays.sort(Object[] a)
    不行么?
      

  3.   


    也可以,但是class A就必须implements Comparable接口,重写compareTo() 方法public static <T> void sort(T[] a,  Comparator<? super T> c)
    是用指定的comparator实现排序
      

  4.   

            String[] strs = new String[3];
            strs[0] = "agaasdsds";
            strs[1] = "fbsd";
            strs[2] = "gsasdd";        Arrays.sort(strs);        这样就可以了,string类型默认的是字典排序。
      

  5.   

    若想按照自己的排序,就得实现Comparable接口
      

  6.   

    参见这个:http://www.xkaiying.com/SaveVote.asp?id=201042012424
      

  7.   

    用集合类ArrrayList传入数组,创建collections对象,再用collections.sort(),这个方法是自然排序,就是你要的
      

  8.   

    Comparator接口要实现的是compare方法,Comparable接口要实现的是compareTo方法。我new Comparator<A>() 能用compareTo()方法吗?
      

  9.   

    chdw 重写了Arrays类的sort方法,用到了匿名内部类。
    其实不需要这样做,
    基本类型的数组,用sort方法可以直接搞定排序,
    若是引用类型的数组,若有排序规则的也可以直接使用sort方法,
    如字符串数组就是默认字典排序
    若是没有排序的,就得实现Comparable接口,
    重写comparaTo方法,对需要排序的内容写自己的排序规则。