Comparable和Comparator排序

Comparable和Comparator排序

开发工具与关键技术:MyEclipse 10、Java 
作者:潘玉莹
撰写时间:2019-04-12

 Comparable介绍
Comparable属于排序接口,若一个类实现了Comparable接口,则表明该类可以进行排序,此排序实在类内部实现的。Comparable默认是通过collections类的Collections.sort方法进行自动排序的
List集合Comparable排序
第一步:声明一个类,实现comparable接口
使用关键字implements来实现类;声明一个构造器,此构造器主要是来用来声明对象的
声明两个私有成员变量。
在这里插入图片描述
第二步:实现comparable接口就要实现接口里面的comparaTo方法;排序的顺序是根据o来决定的,comparaTo里的参数是属于大的,成员变量是属于小的。compareTo字符串默认排列顺序
如图所示:
在这里插入图片描述
第三步:声明对象,此对象是根据上面的有参构造器声明的;如果没有则先声明构造器将会报错。并往对象加入数据;以ArrayList为例。如图所示:
在这里插入图片描述
遍历数据:因为添加数据的为对象,我们不能通过打印对象来输出数据,所以我们需要通过遍历对象来输出数据。遍历数据有多种方法:for循环,迭代器,while;因为在类中我们使用了private来保护成员变量所以需要通过get方法获取成员变量。
在这里插入图片描述
第四步 调用collectios的排序方法collectios.Sort;
Collections.sort(persons);排序结果则会按照comparaTo方法年龄从下到大进行排序;
在这里插入图片描述
 Comparator介绍
Comparator是比较接口,若一个类要实现Comparator接口,就一定要实现
compara(T o1 , T o2); compara(T 01,T 02) 是比较o1和o2的大小;
从小到大:o1-o2 从大到小:o2-o1
Comparable 与comparator用法差不多,只是在调用collections.sort方法不同:如图所示
在这里插入图片描述
第一步:声明一个类,在类里面声明私有成员变量,创建一个构造器
第二步:调用sort排序方法
 Comparable和Comparator区别比较
comparable和comparator要求是有序的才支持使用
  Comparable是排序接口,若一个类实现了Comparable接口,就意味着“该类支持排序”。Comparator是比较器,我们若需要控制某个类的次序,可以建立一个“该类的比较器”来进行排序。Comparable相当于“内部比较器”,而Comparator相当于“外部比较器”。
  用Comparable简单, 只要实现Comparable 接口的对象直接就成为一个可以比较的对象,但是需要修改源代码。 用Comparator 的好处是不需要修改源代码, 而是另外实现一个比较器, 当某个自定义的对象需要作比较的时候,把比较器和对象一起传递过去就可以比大小了, 并且在Comparator 里面用户可以自己实现复杂的可以通用的逻辑,使其可以匹配一些比较简单的对象,那样就可以节省很多重复劳动了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值