Comparator 可用來比較未實作 Comparable 的類別的物件。您已經學習如何使用 Comparable 介面(本節)來比較元素。 Java API 中的幾個類,例如String、Date、Calendar、BigInteger、BigDecimalBigInteger、BigDecimal 基本🎜> 和基本🎜>BigDecimal 和基本🎜>類型的所有數位包裝類別都實作Comparable 介面。 Comparable 介面定義了
compareTo方法,該方法用於比較實作 Comparable 介面的相同類別的兩個元素。 如果元素的類別沒有實作 Comparable 介面怎麼辦?這些要素可以比較嗎?您可以定義一個比較器來比較不同類別的元素。為此,請定義一個實作
java.util.Comparator介面並重寫其
compare方法的類別。 public int Compare(T element1, T element2) 如果element1 小於element2,則傳回負值;如果
element1大於element2,則傳回正值,且為零如果它們相等。 GeometricObject 類別在抽象類別部分中介紹。 GeometricObject 類別未實作
Comparable介面。要比較 GeometricObject
類別的對象,您可以定義一個比較器類,如下面的程式碼所示。第 4 行實作了 Comparator。第 5 行重寫了 Compare 方法來比較兩個幾何物件。該類別也實現了可序列化。對於比較器來說,實作
Serialized通常是一個好主意,因為它們可以用作可序列化資料結構中的排序方法。為了使資料結構成功序列化,比較器(如果提供)必須實現 Serialized.
下面的程式碼給出了一個傳回兩個幾何物件之間更大的物件的方法。使用 GeometricObjectComparator
.比較對象 程式在第7-8 行建立了一個Rectangle 和一個Circle 物件(Rectangle 和CircleRectangle
和Circle 類別定義於抽象類部分)。它們都是GeometricObject的子類別。程式呼叫 max 方法來取得面積較大的幾何物件(第 10 行)。
建立GeometricObjectComparator 並將其傳遞給max 方法(第10 行),此比較器在max 方法中使用來比較中的幾何對象第16 行。 Comparable
用於比較實作Comparable 的類別的物件。 Comparator 可用來比較未實作 Comparable. 的類別的對象 使用Comparable
介面比較元素稱為使用自然順序比較,使用Comparator介面比較元素稱為使用比較器。以上是比較器介面的詳細內容。更多資訊請關注PHP中文網其他相關文章!