JAVA比较器:Comparable<T>和Comparator

项目开发中,当我们遇到对象级别的数组或集合的排序或去重往往就会使用到比较器,java的比较器有两种:Comparable和Comparator。

1).Comparable的使用

使用comparable时在被比较对象所在类上直接去实现Comparable接口就可以了,泛型写类本身,此接口中只定义了一个抽象方法,用户使用此方法只需要返回3种结果:-1,0,1即可,如下图所示。
在这里插入图片描述
输出结果为升序排列:
在这里插入图片描述

2).Comparator的使用

当一个类写完后没有实现Comparable接口却需要实现对象比较接口时可以使用比较器(Comparator),此接口不同于Comparable在java.lang中而是在java.util中,是一个功能型接口,实现时需要覆写其compare(T o1,T o2)方法。
在这里插入图片描述
本次范例使用了Lamda表达式通过Comparator接口完成了对象比较操作。
输出结果降序排列:
在这里插入图片描述
两个比较器的区别:
·java.lang.Comparable接口实在一个类定义时实现好的接口,这样本类的对象数组就可以通过Arrays.sort()方法进行排序,在此接口下定义了一个compareTo()方法。
·java.util.Comparator是专门定义一个指定类的比较规则,属于挽救的比较操作,里面有两个抽象方法:public int compare()、public boolean equals()。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值