確定兩個物件之間的大小關係及排列順序稱為比較,能實現這個比較功能的類別或方法稱之為比較器,在java中有兩種比較器。
內部比較器(Comparable介面)與外部比較器(Comparator介面)
一、比較器排序Comparator的使用-可以看做是類別(對象)外部比較器(實作Comparator介面)。
簡單點說就是把比較器寫在類別的外邊,沒錯!就是在外邊新定義了個比較器類別!
新定義一個類,類名隨意,但這個類必須實作Comparator接口,重寫compare方法,我們把這個稱為外部比較器。
案例:儲存學生物件並遍歷,創建TreeSet集合使用帶參構造方法。
要求:依照年齡從小到大排序,年齡相同時,依照姓名的字母順序排序。
免費學習影片教學推薦:java教學影片
實作步驟:用TreeSet集合儲存自訂對象,帶參構造方法使用的是比較器排序對元素進行排序的比較器排序,就是讓集合建構方法接收Comparator的實作類別對象,重寫compare(Student s1, Student s2)方法重寫方法時,一定要注意排序規則必須按照要求的主要條件和次要條件來寫
1、學生類別
2、測試類別
二、自然排序Comparable的使用-類別(物件)內部比較器(實作Comparable介面):
簡單說就是把比較器寫在類別的內部。
類別(物件)實作了Comparable接口,然後重寫了compareTo方法(這個方法可以看作比較器),這個類別就擁有了內部比較器。注意,你一旦實作了比較器,就說明這個類別支援排序
實作步驟:
用TreeSet集合儲存自訂對象,無參構造方法,使用的是自然排序對元素進行排序的。
自然排序,就是讓元素所屬的類別實現Comparable接口,重寫compareTo(Student s)方法,
重寫方法時,一定要注意排序規則必須按照要求的主要和次要條件來寫。
1、學生類別
2、測試類別
測試結果:
相關文章教學推薦:java零基礎入門
#以上是java中comparable和comparator的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!