黑马程序员技术交流社区

标题: 为什么不能用两个字符串的长度差值作为compare函数的返回值 [打印本页]

作者: 一个大西瓜    时间: 2016-5-26 18:28
标题: 为什么不能用两个字符串的长度差值作为compare函数的返回值
这是  按照字符串长度排序的练习,覆写的compare函数的返回值类型是int,为什么不能用两个长度值直接相减作为返回值呢?
public class TreeSetTest {

        public static void main(String[] args) {
                // TODO 自动生成的方法存根

                TreeSet ts = new TreeSet(new StringLengthCompare());
               
                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 StringLengthCompare implements Comparator
{
        public int compare(Object o1,Object o2)
        {
                String s1 = (String)o1;
                String s2 = (String)o2;
               
                int num = s1.length()-s1.length();
                if(num == 0)
                {
                        return s1.compareTo(s2);
                }
                return num;
        }
}







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