搜索
首页JavaJava基础java中comparable和comparator的区别

java中comparable和comparator的区别

Dec 24, 2019 pm 05:47 PM
comparablecomparatorjava区别

java中comparable和comparator的区别

确定两个对象之间的大小关系及排列顺序称为比较,能实现这个比较功能的类或方法称之为比较器,在java中有两种比较器。

内部比较器(Comparable接口)和外部比较器(Comparator接口)

一、比较器排序Comparator的使用——可以看做是类(对象)外部比较器(实现Comparator接口)。

简单点说就是把比较器写在类的外边,没错!就是在外边新定义了个比较器类!

新定义一个类,类名随意,但这个类必须实现Comparator接口,重写compare方法,我们把这个称作外部比较器。

案例:存储学生对象并遍历,创建TreeSet集合使用带参构造方法。 

要求:按照年龄从小到大排序,年龄相同时,按照姓名的字母顺序排序。

免费学习视频教程推荐:java教学视频

实现步骤 :用TreeSet集合存储自定义对象,带参构造方法使用的是比较器排序对元素进行排序的 比较器排序,就是让集合构造方法接收Comparator的实现类对象,重写compare(Student s1, Student s2)方法 重写方法时,一定要注意排序规则必须按照要求的主要条件和次要条件来写 

1、学生类

b4e39e8c7334e66d1a5b5ab77afa3cb.png

2、测试类

c31f8412a69e774dea45523427c31fc.png

二、自然排序Comparable的使用——类(对象)内部比较器(实现Comparable接口):

简单点说就是把比较器写在类的内部。

类(对象)实现了Comparable接口,然后重写了compareTo方法(这个方法可以看作比较器),这个类就拥有了内部比较器。注意,你一旦实现了比较器,就说明这个类支持排序

实现步骤:

用TreeSet集合存储自定义对象,无参构造方法,使用的是自然排序对元素进行排序的。

自然排序,就是让元素所属的类实现Comparable接口,重写compareTo(Student s)方法,

重写方法时,一定要注意排序规则必须按照要求的主要和次要条件来写。

1、学生类

e24f59308104b792a9c9e1d5986634b.png

2、测试类

a6016817f376ef80c9c3a255c0b009e.png

测试结果:

2c94ae50793cc97b7af3617ce275aa4.png

相关文章教程推荐:java零基础入门

以上是java中comparable和comparator的区别的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:CSDN。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具