急等!ArrayList怎么从大到小排序

解决方案 »

  1.   

    ArrayList list=new ArrayList();
            list.add(new Integer(6));
            list.add(new Integer(3));
            list.add(new Integer(1));
            list.add(new Integer(4));
            list.add(new Integer(0));
            list.add(new Integer(2));
            list.add(new Integer(5));
            Collections.sort(list ,new Comparator()
            {
                public int compare(Object o1, Object o2)
                {
                    boolean bigTosmall = true;
                    int i1 = ( (Integer) o1).intValue();
                    int i2 = ( (Integer) o2).intValue();
                    if (i1 > i2)
                    {
                        if (bigTosmall)
                            return -1;
                        else
                            return 1;
                    }
                    else
                    {
                        if (bigTosmall)
                            return 1;
                        else
                            return -1;
                    }
                }
            });
      

  2.   

    ArrayList自己不是有sort函数吗?
      

  3.   

    Collections.sort(list,Collections.reverseOrder());
      

  4.   

    sort 怎么用啊
    哪位高手写个例子
    谢谢
      

  5.   

    如果要用Sort方法的话,要不然List里面的元素实现了Comparable方法,要不然就是指定一个Comparator
      

  6.   

    排序应该在腰排序的东西里面写 Comparable 方法,不应该到调用 Collections.sort 的时候再另外用一个匿名类实现 compare(). 
    例子:
    public class ClassA{
        long f1;
        long f2;
        public ClassA(long f1,long f2){
            this.f1 = f1;
            this.f2 = f2;
        }    public int compareTo(Object o){
            if(o == null){
                return 1;
            }
            ClassA other = (ClassA)o;        //goes here, other is not null
            if(f1 > other.f1){
                return 1;
            }else if(f1 < other.f1){
                return -1;
            }        //goes here, f1 == other.f1
            if(f2 > other.f2){
                return 1;
            }else if(f2 < other.f2){
                return -1;
            }        //goes here, all equals
            return 0;
        }    public String toString(){
            return "(" + f1 + "," + f2 + ")";
        }    public static void main(String[] args){
            List l = new ArrayList();
            l.add(new ClassA(1,1));
            l.add(new ClassA(1,2));
            l.add(new ClassA(2,1));
            l.add(new ClassA(2,2));
            System.out.println(l.toString());
     
            //顺序排列
            Collections.sort(l);
            System.out.println(l.toString());        //逆序排列
            Collections.sort(l,Collections.reverseOrder());
            System.out.println(l.toString());
     
        }
    }
      

  7.   

    搞错了,应该写
    public class ClassA implements Comparable{
    ...
    }
      

  8.   

    只要定义一个Comparator接口的实现类,在这里定义如何比较元素的大小,再传给Collections.sort方法即可。很简单
      

  9.   

    默认是从小到大排序,要用 Collections.sort(list,Collections.reverseOrder());