自定义一个类myclass,其中有一个date类型的属性域mytime,将多个myclass对象放入ArrayList后,想要根据其中各个对象的mytime域的先后,对Arraylist进行排序,可否实现?请高手指教!

解决方案 »

  1.   

    java.util.Comparator codeCompare = new org.apache.commons.beanutils.BeanComparator("mytime");
    Comparator reverseComparator = new org.apache.commons.collections.comparators.ComparatorChain(codeCompare, true);
    Collections.sort(list, reverseComparator);或者自己写一个comparator继承Comparator
      

  2.   

    import java.util.*;
    class MyComparator extends Comparator{
        public void compare(Object object1,Object2){
            Data data1=(Data)object1;
            Data data2=(Data)object2;
            //data排序自己弄
        }
    }
    ArrayList list=new ArrayList();
    Collections.sort(list,new MyComparator());就这样了
      

  3.   

    Collections.sort(list,new Comparator(){
        public int compare(Object o1,Object o2){
           //what do you want?
        }
    }
    );
      

  4.   

    不好意思,刚才有地方写错了~
    再写一遍
    import java.util.*;
    class MyComparator extends Comparator{
        public int compare(Object object1,Object2){
            Data data1=(Data)object1;
            Data data2=(Data)object2;
            //对两个的Data的对象data1,data2进行排序啊~
        }
    }
    ArrayList arraylist=new ArrayList();
    //对arraylist进行构造~,添加元素
    list=Array.asList(arraylist);
    Collections.sort(list,new MyComparator());这样应该行了,运行完应该完成对arraylist的排序
    请高手指教
      

  5.   

    两个都错,Comparator是个interface,怎么用extends呢
      

  6.   

    不知道不用ArrayList而用TreeSet可不可以。TreeSet是可排序Set,但是前提是放入其中的对象是可以排序的
      

  7.   

    class MyComparator extends Comparator
    改为class MyComparator implements Comparator还有什么错误吗~请高手指点
      

  8.   

    楼上的怎么不编译一下,或者放到ide里,一看就知道有没有错了
      

  9.   

    Collections 已经写好~
    不用我们再写了~
      

  10.   

    有时候用TreeSet可以提高效率,不过会把相同的数据过滤掉了!
      

  11.   

    ArrayList list=new ArrayList();
        Arrays.sort(list.toArray());
      

  12.   

    ArrayList list=new ArrayList();
    list.toArray().sort();