Comparable简介:
Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort()或Arrays.sort()进行自动排序。此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。此接口只有一个方法compareTo,比较此对象与指定对象的顺序,如果该对象小于、等于或大于指定对象,则分别返回负整数、零或正整数。
简单例子:
我们通过Integer的源码可以看出Integer类继承了Comparable接口
并且重写了compareTo,这也是Comparable中唯一的方法。
Comparable接口在JDK8中的源码:
自定义对象的排序:
我们自定义一个Person类:
运行将报如下错误:
错误原因:Person对象没有实现Comparable接口,并重写compareTo方法。
那么我们给Person对象实现Comparable接口,并重写compareTo方法:
且我需要按年龄排序:
再次运行我们的主函数:
此时我提出一个疑问:难道我想给Person对象的集合排序就一定要给Person类实现Comparable接口吗?
其实不然,我先把Person的实现去掉:
我们只需要在sorted()里加一个排序规则即可,比如我想按身高排序:
java的Comparable接口
最新推荐文章于 2023-03-01 11:41:48 发布