比较器Comparable与Compartor接口

在Java中若想实现自定义的类的比较有两个接口
java.lang.Comparable接口(内部比较器)-排序接口
若一个类实现了Comparable接口,表示该类支持排序。并且存放该类的Conllection或数组,可以直接通过Collection.sort()或Arrays.sort进行排序

实现了Comparable接口的类可以直接存放在TreeSet或者TreeMap中。
public int compareTo(T o);

返回正数:表示当前对象大于目标对象
返回0:表示当前对象等于目标数组
返回负数:表示当前对象小于目标数组

Comparator(外部排序接口)
若要控制某个自定义类的顺序,而该类本身不支持排序,类本身没有实现Comparable接口,我们可以建立一个该类的“比较器”来进行排序。比较器实现Comparator接口即可。

“比较器”:实现了Comparator接口的类作为比较器,通过该比较器进行类的排序
int compare(T o1, T o2);

返回正数表示 o1 > o2
返回0表示: o1 = o2
返回小数表示 o1 < o2

实现了Compartor接口进行的第三方排序—策略模式,此方法更加灵活,可以轻松改变策略进行第三方的排序算法。

Comparable接口与Comparator接口的关系:
Comparable是排序接口,若一个类实现Comparable接口,意味着该类支持排序,是一个内部比较器(自己去和别人比)
Comparator接口是比较器接口,类本身不支持排序,专门有若干个第三方的比较器(实现了Compartor接口的类)来进行类的排序,是一个外部比较器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值