黑马程序员技术交流社区

标题: 代码 疑问 求助 [打印本页]

作者: 莫运飞    时间: 2012-4-8 17:36
标题: 代码 疑问 求助
import java.util.*;

class Collections
{
        public static void main(String[] args)
{
                sort();

}
public static void sort()
{
        List<String> List=new ArrayList<String>();
       
        list.add("aaaa");
        list.add("fff");
        list.add("hhh");
        list.add("uuuuu");
        list.add("mmm");

        sop(list);

        collections.sort(list,new Compare01());//为什么比较器会传到这里来呢??
                                                //其他的容器用到比较器时都是传到容器里的。
                                                //例如:TreeSet<String> ts=new TreeSet<String>(new Compare01());
        sop(list);
}

public static void sop(Object obj)
{
System.out.println(obj);

}

}


//这个比较器不是这个程序的,拿过来做个参照。

class Compare01 implements Comparator<String>

{
        public int compare(String a,String b)

{

        //String x=(String)a;
        //String y=(String)b;



        if(a.length()>b.length())
                return 1;


        if(a.length()==b.length())
                return 0;

                return -1;
}}






作者: 黑马-刘昌文    时间: 2012-4-8 18:00
有的集合是带排序的,比如TreeSet,LinkedArrayList,有的没有排序,你想对集合从新排序必须使用带排序的集合,而且集合中的对象必须实现Comparable接口并重写 compare()方法,ArrayList是不带排序的!
作者: 李敏    时间: 2012-4-8 18:24
一句话,Collections 是操作集合的工具类。
你的类名不能这样取名的。
API:
static <T> void  sort(List<T> list, Comparator<? super T> c)
          根据指定比较器产生的顺序对指定列表进行排序。

作者: pray    时间: 2014-4-26 06:08
留个脚印```````




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2