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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yujiangjiao 中级黑马   /  2014-3-25 11:10  /  1240 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class strComparator implements Comparator<String>
  2. {
  3.         public int compare(String s1,String s2)
  4.         {
  5.                 //return s1.compareTo(s2);//正序比较级和中的字符串,按照字母的自然顺序比较
  6.                 return s2.compareTo(s1);//将s1,s2互换位置,为什么可以倒序比较字符串呢?
  7.         }
  8. }
复制代码

代码如上,我不理解,        为什么将s1,s2互换位置,字符串就是倒序比较的了?

评分

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

查看全部评分

3 个回复

倒序浏览
s1.compareTo(s2)返回的是 负整数、零或正整数,例如s1是d,s2是c则 返回正数,如果将s1和s2调换位置s2.compareTo(s1),相当于c在前,d在后,则返回负数。其实所谓的倒叙比较就是原来返回的值和现在返回的值互为相反数

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
  1. class strComparator implements Comparator<String>
  2. {
  3.         public int compare(String s1,String s2)
  4.         {
  5.                 //return s1.compareTo(s2);//正序比较级和中的字符串,按照字母的自然顺序比较
  6.                 return s2.compareTo(s1);//将s1,s2互换位置,为什么可以倒序比较字符串呢?
  7.         }
  8. }
复制代码

这是自定义的一个比较器,实现了Comparator,compareTo();是封装在内部的一个比较方法,会用就行了,不用深究它内部是怎么实现的

评分

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

查看全部评分

回复 使用道具 举报
  1. /*   如果他们第一个返回是1  <span style="color: rgb(102, 102, 102); font-family: Monaco, Consolas, 'Lucida Console', 'Courier New', serif; font-size: 12px; line-height: 21.600000381469727px; ">他们俩个反过来比较就成 -1了   TreeSet 排序只跟返回值有关系 不管其他</span>
  2. *                         TreeSet ts = new TreeSet();
  3.                
  4.                 ts.add("lisi01");
  5.                 ts.add("lisi02");
  6.                 ts.add("lisi03");
  7.                 ts.add("lisi04");
  8.                
  9. * */  

  10. class strComparator implements Comparator<String>
  11. {
  12.         public int compare(String s1,String s2)
  13.         {
  14.                 //return s1.compareTo(s2);//比如上面得那组 如先有lisi01了 当lisi02来了 比较 返回 1
  15.                 return s2.compareTo(s1);// 他们俩个反过来比较就成 -1了   TreeSet 排序只跟返回值有关系 不管其他
  16.         }
  17. }
复制代码

评分

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

查看全部评分

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