黑马程序员技术交流社区
标题:
请教 比较器中倒序比较字符串的问题
[打印本页]
作者:
yujiangjiao
时间:
2014-3-25 11:10
标题:
请教 比较器中倒序比较字符串的问题
class strComparator implements Comparator<String>
{
public int compare(String s1,String s2)
{
//return s1.compareTo(s2);//正序比较级和中的字符串,按照字母的自然顺序比较
return s2.compareTo(s1);//将s1,s2互换位置,为什么可以倒序比较字符串呢?
}
}
复制代码
代码如上,我不理解, 为什么将s1,s2互换位置,字符串就是倒序比较的了?
作者:
zhxu188
时间:
2014-3-25 11:34
s1.compareTo(s2)返回的是 负整数、零或正整数,例如s1是d,s2是c则 返回正数,如果将s1和s2调换位置s2.compareTo(s1),相当于c在前,d在后,则返回负数。其实所谓的倒叙比较就是原来返回的值和现在返回的值互为相反数
作者:
李东梁
时间:
2014-3-25 11:59
class strComparator implements Comparator<String>
{
public int compare(String s1,String s2)
{
//return s1.compareTo(s2);//正序比较级和中的字符串,按照字母的自然顺序比较
return s2.compareTo(s1);//将s1,s2互换位置,为什么可以倒序比较字符串呢?
}
}
复制代码
这是自定义的一个比较器,实现了Comparator,compareTo();是封装在内部的一个比较方法,会用就行了,不用深究它内部是怎么实现的
作者:
赵彦丰
时间:
2014-3-25 14:04
/* 如果他们第一个返回是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>
* TreeSet ts = new TreeSet();
ts.add("lisi01");
ts.add("lisi02");
ts.add("lisi03");
ts.add("lisi04");
* */
class strComparator implements Comparator<String>
{
public int compare(String s1,String s2)
{
//return s1.compareTo(s2);//比如上面得那组 如先有lisi01了 当lisi02来了 比较 返回 1
return s2.compareTo(s1);// 他们俩个反过来比较就成 -1了 TreeSet 排序只跟返回值有关系 不管其他
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2