首頁  >  文章  >  Java  >  java中comparable和comparator的區別

java中comparable和comparator的區別

王林
王林轉載
2019-12-24 17:47:542618瀏覽

java中comparable和comparator的區別

確定兩個物件之間的大小關係及排列順序稱為比較,能實現這個比較功能的類別或方法稱之為比較器,在java中有兩種比較器。

內部比較器(Comparable介面)與外部比較器(Comparator介面)

一、比較器排序Comparator的使用-可以看做是類別(對象)外部比較器(實作Comparator介面)。

簡單點說就是把比較器寫在類別的外邊,沒錯!就是在外邊新定義了個比較器類別!

新定義一個類,類名隨意,但這個類必須實作Comparator接口,重寫compare方法,我們把這個稱為外部比較器。

案例:儲存學生物件並遍歷,創建TreeSet集合使用帶參構造方法。 

要求:依照年齡從小到大排序,年齡相同時,依照姓名的字母順序排序。

免費學習影片教學推薦:java教學影片

實作步驟:用TreeSet集合儲存自訂對象,帶參構造方法使用的是比較器排序對元素進行排序的比較器排序,就是讓集合建構方法接收Comparator的實作類別對象,重寫compare(Student s1, Student s2)方法重寫方法時,一定要注意排序規則必須按照要求的主要條件和次要條件來寫 

1、學生類別

java中comparable和comparator的區別

2、測試類別

java中comparable和comparator的區別

二、自然排序Comparable的使用-類別(物件)內部比較器(實作Comparable介面):

簡單說就是把比較器寫在類別的內部。

類別(物件)實作了Comparable接口,然後重寫了compareTo方法(這個方法可以看作比較器),這個類別就擁有了內部比較器。注意,你一旦實作了比較器,就說明這個類別支援排序

實作步驟:

用TreeSet集合儲存自訂對象,無參構造方法,使用的是自然排序對元素進行排序的。

自然排序,就是讓元素所屬的類別實現Comparable接口,重寫compareTo(Student s)方法,

重寫方法時,一定要注意排序規則必須按照要求的主要和次要條件來寫。

1、學生類別

java中comparable和comparator的區別

2、測試類別

java中comparable和comparator的區別

測試結果:

java中comparable和comparator的區別

相關文章教學推薦:java零基礎入門

#

以上是java中comparable和comparator的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除