Comparable与Comparator接口
Posted Yienfong_Chueng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Comparable与Comparator接口相关的知识,希望对你有一定的参考价值。
一、当对一个自定义对象类进行排序,比如Student类或者Course课程类,使用Collection.sort()方法时编译器会报错。原因是没有继承Comparable接口。因为不知道学生类或者课程类是按什么顺序规则来排序,所以会报错。
二、compareable 是默认比较规则, comparator是临时比较规则
1.Comparable接口——可比较的
实现该接口表示:这个类的实例可以比较大小,可以进行自然排序
定义了默认的比较规则
其实现类需实现compareTo()方法
comparaTo()方法返回正数表示大,负数表示小,0表示相等
2.Comparator接口—–比较工具接口
用于定义临时比较规则,而不是默认比较规则
其实现类需要实现compare()方法
Comparator和Comparable都是Java集合框架的成员
compareable 需要实现compare to方法, comparator需要实现 compare方法
ps:
Collection和Collections区别:
Collection是集合框架接口,它有三个子接口:
List序列——有序可重复,其实现类是ArrayList
Queue队列——有序可重复,其实现类是LinkedList
Set集——无序不可重复,其实现类是HashSet
Collections是对操作集合对象的工具类。
以上是关于Comparable与Comparator接口的主要内容,如果未能解决你的问题,请参考以下文章
Comparable接口与Comparator接口的比较————Comparator接口详解
Comparable接口与Comparator接口的比较————总结
JavaComparable和Comparator接口的区别