A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 费破的可 于 2013-10-31 14:02 编辑

import java.util.*;
class  TreeSetTest
{
        public static void main(String[] args)
        {
                TreeSet ts = new TreeSet(new StrLenComparator() );//为什么这里不加new StrLenComparator()程序也能运行???
                ts.add("assa");
                ts.add("afffa");
                ts.add("ccaa");
                ts.add("wwaa");
                ts.add("wwaa");
                ts.add("adfsf");
                Iterator it = ts.iterator();
                while(it.hasNext())
                {
                        System.out.println(it.next());
                }
        }
}
class StrLenComparator implements Comparator
{
        public int compare(Object o1,Object o2)
        {
        String s1 = (String)o1;
        String s2 = (String)o2;
        int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
        if(num==0)
                        return s1.compareTo(s2);
        return num;
}
}

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
TreeSet有四种构造函数,楼主用的是TreeSet(Comparator<? super E> comparator),也就是在new 的时候指定一个comparator。如果不加comparator,那就是new的空的构造函数,也是可以的,只是没有指定comparator,不能在add的时候进行排序。

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马