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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郭冰川 中级黑马   /  2013-1-28 17:51  /  1026 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郭冰川 于 2013-1-28 18:52 编辑

有点疑问,具体在代码注释上面

import java.util.*;
class  TreeSetTest
{
        public static void main(String[] args)
        {
                TreeSet ts = new TreeSet(new MyCompare());

                ts.add("abcd");
                ts.add("cc");
                ts.add("cba");
                ts.add("aaa");
                ts.add("z");
                ts.add("hahaha");

                Iterator it = ts.iterator();

                while(it.hasNext())
                {
                        System.out.println(it.next());
                }
        }
}
class MyCompare implements Comparator
{
        public int compare(Object o1,Object o2)
        {
                String s1 = (String)o1;
                String s2 = (String)o2;
                //int num = s1.length() - s2.length();   
               //这里有点疑问,毕老师一直用下面转成Integer的方法,我觉得上面那个方法也挺好用的,求高手给分析下区别
                int num = new Integer(s1.length()).compareTo(new Integer(s2.length()));
                if (num == 0)
                {
                        return s1.compareTo(s2);
                }
                return num;
        }
}


评分

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

查看全部评分

2 个回复

正序浏览
我觉得。。new对象了,可以使用对象的其他方法。
如果如果真正开发了,肯定不会只有这么简单的减法运算。
应该是开发习惯吧。。。。。。。{:soso_e117:}
回复 使用道具 举报
int num = new Integer(s1.length()).compareTo(new Integer(s2.length())); 这个是按照字符串长度自然顺序来排序。即从小到大。
int num = s1.length() - s2.length();    这个也按照长度大小排序,是升序还是降序,就要看结果了。如果不是你想要的顺序,你可以将结果变成负的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马