介绍Java Comparator接口及其中的compareTo方法
发布时间
阅读量:
阅读量
【在java.util.Comparator接口中,compare(Object o1, Object o2)方法属于其核心组成部分,其本质是调用了待比较对象的compareTo(Object o)方法。
对于任意object类的对象,均可调用compareto方法,例如O1.compareto(O2),若O1小于O2,则返回-1;若两者相等,则返回0;若O1大于O2,则返回1。
补充说明:关于字符串的compareto方法
该方法存在两种形式:
compareTo(String str) 用于按照字典顺序对两个字符串进行比较。
compareToIgnoreCase(String str) 同样按照字典顺序对两个字符串进行比较,但不区分大小写。
此前一直未能明确自定义compare方法的返回值应该如何处理,在查阅资料并总结后得出以下结论:
在compare(Object o1, Object o2)方法中,默认采用的是o1 - o2的计算方式。当o1小于o2时,返回值为-1;当o1等于o2时,返回值为0;当o1大于o2时,返回值为1。排序结果依据-1进行排列,默认实现从小到大排序。(实际上等同于执行了o1.compareTo(o2))
因此,若返回值为-1,则两个对象的位置保持不变;若返回值为1,则两个对象的位置发生交换。
由此便可以实
全部评论 (0)
还没有任何评论哟~
