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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 突然世界晴 中级黑马   /  2015-3-10 21:17  /  629 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


        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吗???????????

1 个回复

正序浏览
如果你想输出那样的结果就应该在比较器里面判断长度。把下面这段代码贴到里面试试
  1. if(s1.length()>s2.length())
  2.          return 1;
  3. if(s1.length()<s2.length())
  4.          return -1;
  5. return s1.compareTo(s2);
复制代码

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