搜尋
首頁JavaJava基礎java中comparable和comparator的區別

java中comparable和comparator的區別

Dec 24, 2019 pm 05:47 PM
comparablecomparatorjava差別

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。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境