Java的List排序

开发工具与关键技术:MyEclipse 10、Java语法
作者:邓婵
撰写时间:2019年6 月 5日

集合和数组的不同点:
数组:只能存储固定大小同一类型的元素。数组元素可以是基本数据类型的值,也可以是对象。
集合:可用于存储数量不等的对象,并可以实现常用的数据结构。还可以保存具有映射关系的关联数组。而集合只能保存对象。
Collection和map属于同一系统集合,list接口和set接口继承Collection接口。List接口是有序可以存放重复数据的。

一、List中的Comparable排序:
Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。
例子:
在这里插入图片描述
在这里插入图片描述
说明:Comparable相当于“内部比较器”,首先要创建对象实现它的接口,然后根据自己定义的类来排序,根据Comparable排序接口里面的方法compareTo改变排序方法,排序方法有从小到大 :this.成员变量-o.成员变量,从大到小:o.成员变量-this.成员变量,再把数据添加完后通过Collections工具类里面sort排序的方法进行排序,最后遍历数据列表,输出列表数据。

这里根据年龄从小到大排序,如果年龄相同则根据姓名进行排序。输出结果如图下所示:
在这里插入图片描述
二、List中的Comparator排序:
Comparator是比较接口。我们可以通过实现Comparator来新建一个比较器,然后通过这个比较器对类进行排序。 例子:
在这里插入图片描述
在这里插入图片描述
说明:Comparator相当于“外部比较器”,首先创建对象,把数据添加完后通过Collections工具类里面sort排序的方法传进Comparator进行排序,然后自定义它的排序,排序方法有从小到大 o1.成员变量-o2.成员变量,从大到小 o2.成员变量-o1.成员变量,最后遍历数据列表,输出列表数据。

这里根据年龄从小到大排序,如果年龄相同则根据姓名进行排序。输出结果如图下所示:
在这里插入图片描述
其实这两种排序方法输出的效果是一样的,不同的就是Comparable排序需要改原来那个类,在那个类实现接口。而Comparator排序只需要在外部写进去就可以了,就不需要动原来那个类。

  • 19
    点赞
  • 71
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值