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

© 张开开 黑马帝   /  2012-2-22 14:24  /  1657 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

import java.util.*;
class  GenericDemo2
{
        public static void main(String[] args)
        {
                TreeSet<String> ts=new TreeSet<String>(new LenCom());
                ts.add("abcd");
                ts.add("cc");
                ts.add("cba");
                ts.add("aaa");
                ts.add("z");
                ts.add("hahaha");

                Iterator<String> it = ts.iterator();
                while(it.hasNext())
                {
                        String s=it.next();
                        System.out.println(s);
                }
        }
}

class LenCom implements Comparator<String>
{
        public int compare(String o1,String o2)
        {
                //String s1=(String)o1;
                //String s2=(String)o1;
                int num=new Integer(o1.length().compareTo(new Integer(o2.length())));
                        if(num==0)
                                return o1.compareTo(o2);
                        return num;
        }
}

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

2 个回复

倒序浏览
int num=new Integer(o1.length().compareTo(new Integer(o2.length())));
括号对应关系写错了吧,修改:
int num=new Integer(o1.length()).compareTo(new Integer(o2.length()));

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
对的,改掉括号的位置后就正确了。修改后运行结果如下:
z
cc
aaa
cba
abcd
hahaha

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

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