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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王林涛 中级黑马   /  2013-6-9 19:54  /  1194 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王林涛 于 2013-6-10 23:09 编辑

class StringLengthComparator implements Comparator
{
        public int Compare(Object o1,Object o2)
        {
                String s1 = (string)o1;
                String s2 = (String)o2;

                /*
                if(s1.length()>s2.length())
                        return 1;
                if(s1.length()==s2.length())
                        return 0;
                */


                //封装成数字对象,然后判断主要条件,长度
                int num = new Integer(s1.length()).compareTo(new Integer(s2.length())) //这个地方为什么可以封装成对象?而且还是直接new
                //判断次要条件字符串内容是否相同.
                if(num == 0)
                        return s1.compareTo(s2);
                return num;
        }
}

评分

参与人数 1技术分 +1 收起 理由
黑马伍哲沂 + 1 神马都是浮云

查看全部评分

4 个回复

正序浏览
Integer可以看成是一个装饰类,参考装饰设计模式。传递的是一个接口或者子类的对象。
回复 使用道具 举报
Integer是一个包装类,直接new相当与创建Intger对象, 和Integer in = new Integer(s2.length())是一样的道理
回复 使用道具 举报
应该是数据类型的转换,向上转型,将基本数据类型转换成引用数据类型
intl类型转换成引用数据类型后,在调用引用数据Integer的compareTo方法
回复 使用道具 举报
int compareTo(T o)比较此对象与指定对象的顺序。如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。

Integer(int value)
          构造一个新分配的 Integer 对象,它表示指定的 int 值.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马