黑马程序员技术交流社区

标题: 比较器的问题 [打印本页]

作者: 突然世界晴    时间: 2015-3-10 21:17
标题: 比较器的问题

        class LenComparator implements Comparator<String>
        {
                public int compare(String o1,String o2)
                {
                        int num = new Integer(o2.length()).compareTo(new Integer(o1.length()));  //这里为什么02和01兑换位置输出就相反了呢????

          if(num==0)
                                return o2.compareTo(o1);
                        return num;
                }
        }
                        return num;
                }
        }
想不通,比如01=“aa”长度为2 ,02=“aaa”长度为3
2跟3比, 2比3小,2在左边  输出aa    aaa
对换位置后  int num = new Integer(o2.length()).compareTo(new Integer(o1.length()));   
却输出输出为aaa aa。。
不应该是3跟2比,3比2大,3在右边 输出aa     aaa吗???????????


作者: 艺多不压身丶    时间: 2015-3-10 21:20
如果你想输出那样的结果就应该在比较器里面判断长度。把下面这段代码贴到里面试试
  1. if(s1.length()>s2.length())
  2.          return 1;
  3. if(s1.length()<s2.length())
  4.          return -1;
  5. return s1.compareTo(s2);
复制代码






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