首页 课程 师资 教程 报名

如何使用Java Core提供的两个“比较” API?

  • 2019-09-04 10:14:11
  • 1544次 星辉

  Comparable和Comparator是JavaCoreAPI提供的两个接口。从它们的名字,我们可以告诉他们可能用于以某种方式比较东西。但究竟是什么,它们之间有什么区别?以下是回答此问题的两个示例。这些简单的例子比较了两个HDTV的尺寸。阅读代码后,如何使用ComparablevsComparator是显而易见的。

  1.Comparable

  Comparable由类实现,以便能够将自身的对象与其他一些对象进行比较。类本身必须实现接口才能比较其实例。实现所需的方法是compareTo。这是一个例子:

image.png

  输出:索尼更好。

  2.Comparator

  在某些情况下,你可能不希望更改类并使其具有可比性。在这种情况下,Comparator如果要基于某些属性/字段比较对象,则可以使用。例如,可以根据“高度”或“年龄”等对2个人进行比较(使用可比较的方法无法做到这一点。)

  实现所需的方法是compare。现在让我们用另一种方法来比较这些电视的大小。一种常见的用途Comparator是分类。bothCollections和Arraysclasses都提供了一个使用a的排序方法Comparator。

image.png

  输出:

  松下三星索尼

  通常我们可以使用Collections.reverseOrder方法来获得降序比较。如下:

image.png

  输出:

  [3,1,2][1,2,3][3,2,1]

  3.何时使用哪个接口?

  简而言之,实现Comparable的类将具有可比性,这意味着它可以相互比较实例。

  实现Comparator的类将主要用于两种情况:1)它可以传递给排序方法,例如Collections.sort或Arrays.sort,以允许精确控制排序顺序和2)它还可以用于控制某些数据的顺序结构,例如有序集(例如TreeSet)或有序映射(例如TreeMap)。

  例如,创建一个TreeSet。我们可以将构造函数传递给比较器,也可以使对象类具有可比性。

  方法1-TreeSet

image.png

  方法2-Comparable

image.png

  这篇文章到这里就结束了,大家对本次知识点是否理解了呢?如果有疑问可以登录“星辉IT培训官网”咨询在线客服老师哦。

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交