首页  >  文章  >  Java  >  比较器接口

比较器接口

PHPz
PHPz原创
2024-07-16 16:47:12497浏览

Comparator 可用于比较未实现 Comparable 的类的对象。您已经学习了如何使用 Comparable 界面(本节)来比较元素。 Java API 中的几个类,例如 StringDateCalendarBigIntegerBigDecimal 和基本类型的所有数字包装类都实现 Comparable 接口。 Comparable 接口定义了 compareTo 方法,该方法用于比较实现 Comparable 接口的同一类的两个元素。

如果元素的类没有实现 Comparable 接口怎么办?这些要素可以比较吗?您可以定义一个比较器来比较不同类的元素。为此,请定义一个实现 java.util.Comparator 接口并重写其 compare 方法的类。

public int Compare(T element1, T element2)

如果 element1 小于 element2,则返回负值;如果 element1 大于 element2,则返回正值,并且为零如果它们相等。

GeometricObject 类在抽象类部分中介绍。 GeometricObject 类未实现 Comparable 接口。要比较 GeometricObject 类的对象,您可以定义一个比较器类,如下面的代码所示。

Image description

第 4 行实现了 Comparator。第 5 行重写了 Compare 方法来比较两个几何对象。该类还实现了可序列化。对于比较器来说,实现 Serialized 通常是一个好主意,因为它们可以用作可序列化数据结构中的排序方法。为了使数据结构成功序列化,比较器(如果提供)必须实现 Serialized.

下面的代码给出了一个返回两个几何对象之间更大的对象的方法。使用 GeometricObjectComparator.

比较对象

Image description

程序在第 7-8 行创建了一个 Rectangle 和一个 Circle 对象(RectangleCircle 类定义于抽象类部分)。它们都是GeometricObject的子类。程序调用 max 方法来获取面积较大的几何对象(第 10 行)。

创建 GeometricObjectComparator 并将其传递给 max 方法(第 10 行),此比较器在 max 方法中使用来比较中的几何对象第 16 行。

Comparable 用于比较实现 Comparable 的类的对象。 Comparator 可用于比较未实现 Comparable.

的类的对象

使用Comparable接口比较元素称为使用自然顺序进行比较,使用Comparator接口比较元素称为使用比较器

以上是比较器接口的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn