Collections.sort(List<T>, Comparator<T>)解读 以及Comparator 和 Comparable 比较

Collections有两种sort(),底层均是Arrays.sort(arr,c)

  1. Collections.sort(List list, Comparator c)

–底层是Arrays.sort(arr,c),自定义的ret = comparable(e1,e2),当ret大于0,表示e1 > e2,也即是arr[j - 1] > arr[j],此时需要swap,(数组长度小于7 – 插入排序)。

2.Collections.sort(List list)

–默认Arrays.sort(arr, null)->排序是升序排序,插入排序。

注意:判断条件是-1、0、1,-1表示前面小于后面,0表示相等,1表示前面大于后面 默认是升序排序。

Comparator 和 Comparable 比较

结论:Comparable --可比较的 Comparator --比较器

通过这个单词的含义记忆,String和Integer等对象是以及实现了比较函数compareTo的,所以是可比较的,而我们自定义的类的比较需要我们自己设置度量的参照,因此我们通常是使用Comparator自定义比较器。

能够实现自比较,也就是当前对象和另一个相同类型的对象进行比较的类型,实现Comparable。

不能实现当前对象的比较或者不方便比较的,使用Comparator

String impl Comparable<String >:
    int compareTo(String  o){}


Integer impl Comparable<Integer >:
    int compareTo(Integer  o){}

//自定义的比较

User impl Comparator<User>:
	int compare(User A, User B){}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值