栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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:
    int compareTo(String  o){}


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

//自定义的比较

User impl Comparator:
	int compare(User A, User B){}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/891315.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号