十年網站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網站問題一站解決
怎么進行Java Comparable和Comparator的對比,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
網站建設哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網頁設計、網站建設、微信開發(fā)、微信平臺小程序開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了渦陽免費建站歡迎大家使用!
在實際項目開發(fā)過程中,我們經常需要對某個對象或者某個集合中的元素進行排序,常用的兩種方式是實現(xiàn)某個接口。常見的可以實現(xiàn)比較功能的接口有Comparable接口和 Comparator接口,那么這兩個又有什么區(qū)別呢?
關于Comparable接口
關于Comparable接口,其位于 java.lang.Comparable 中,實現(xiàn)這個接口,可以通過重寫其 compareTo 方法進行自定義排序,一般用于實體類中,比如針對學生對象,根據其姓名、身高、年齡、地址等進行排序,商品根據名稱、庫存、價格排序等。下面一段代碼中主要是對 學生的姓名、年齡、地址進行排序,當我們重寫其 compareTo 方法后,對于一個學生對象的集合,我們可以通過調用 Collections.sort(studentList) 對其進行排序,即可達到想要的效果。
public class Students implements Comparable
關于Comparator接口
關于Comparator接口,其位于 java.util.Comparator 中,實現(xiàn)這個接口,可以通過重寫其 compare 方法進行自定義的排序,比如針對 字符串的 list,根據其長度遞減排序;根據Integer 的集合,根據其大小升序(Collections.sort()方法中默認實現(xiàn)的就是升序)。此外,針對數(shù)組的排序,還可以調用 Arrays.sort() 進行排序,其默認是根據字典順序進行排序。
import java.util.*;public class CompareController1 implements Comparator
擴展補充:
關于Collections.sort()和 Arrays.sort()
1) Collections.sort()方法底層實際就是Arrays.sort(),
2) Arrays.sort()的底層分為兩種,滿足某種條件就調用這個排序 legacyMergeSort,其底層就是歸并排序;如果不滿足,就是 TimSort
3) TimSort 的底層根據數(shù)組的長度進行區(qū)分,如果數(shù)組的長度小于32,直接使用簡單的合并算法,即二分插入排序(binary merge sort);如果長度大于32,就是 合并算法。
看完上述內容,你們掌握怎么進行Java Comparable和Comparator的對比的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!