JAVA 中Comparator接口实现自定义排序的理解

java.util.Comparator是比较器接口,如果我们需要控制某个类的次序并且该类本身不支持排序,那么就可以建立一个类比较器来进行排序,实现方式很简单只需要实现java.util.Comparator接口中下面的compare方法:

public int compare(Object s1, Object s2)

比较的原则需要牢记

返回 <0的情况   不调整s1和s2顺序  
返回 >0的情况   调整s1和s2顺序    


举个栗子

【升序排列】

==========================================
第一种情况: s1=3  s2=4
public int compare(Object s1, Object s2){
    return s1-s2;
}
结果返回 -1  不调整顺序 即:3 4  (升序)

==========================================

第二种情况 s1=6  s2=5
public int compare(Object s1, Object s2){
    return s1-s2;
}
结果返回 1  ,需要调整顺序
调整前顺序 :6 5 
调整后顺序 :5 6 (升序)


【降序排列】

==========================================

第三种情况 s1=10  s2=12
public int compare(Object s1, Object s2){
    return s2-s1;
}
结果返回 2  ,需要调整顺序
调整前顺序 :10 12
调整后顺序 :12 10   (降序)

==========================================

第四种情况 s1=18  s2=16
public int compare(Object s1, Object s2){
    return s2-s1;
}
结果返回 -2  ,不需要调整顺序  顺序即 18  16 (降序)

 

以上是自己的理解,希望能给初学者一个参考。

转载于:https://my.oschina.net/zb0423/blog/1814754

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值