在哪種情況下我們必須實現Comparable接口嗎?何時以及爲什麼我們必須實現Comparable接口?
1
A
回答
6
當您希望能夠比較2個對象並獲得等於,小於或大於的結果時。
實現Comparable爲對象提供compareTo
方法。如果將它們添加到排序列表中,則它們將根據您的compareTo
方法返回的內容自動排序。
這是非常基本的。我不知道還有什麼要補充的。
+2
爲了擴展takteek的答案,基本上,您需要實現Comparable接口,以便爲各種已排序的集合使用大部分內置排序功能。 – Amber 2009-08-03 05:24:07
0
當您的課程實現了Comparable接口時,您的已有以實現compareTo()方法,您可以清楚地知道您的類的實例將在這些實例的有序列表中的位置。
實現高效的排序算法和有序集合不是微不足道的。因此,當您希望某個類的對象具有自然排序時,您可以這樣做,因此您可以使用由Java提供的經驗證的排序和順序依賴的算法和類,而不是實現您自己的類,例如在TreeSet的內容保持排序後插入/刪除,或使用Collections.sort()。
相關問題
- 1. 爲什麼我們要實現接口?
- 2. 何時以及爲什麼我必須關閉管道?
- 3. 爲什麼ServiceReference實現Comparable?
- 4. 爲什麼我們必須命名接口方法參數?
- 5. 爲什麼javabean必須實現可序列化的接口?
- 6. 爲什麼必須公開實現內部接口的方法
- 7. 何時以及爲什麼JPA實體應該實現Serializable接口?
- 8. 爲什麼我們必須綜合?
- 9. __construct()必須實現接口錯誤
- 10. 屬性實現必須在接口
- 11. 爲什麼Typescript中的抽象類實現和接口必須實現接口中的所有方法
- 12. C++ 11:它的gc接口是什麼,以及如何實現?
- 13. 我們可以用類實現同樣的事情,那麼爲什麼接口?
- 14. 爲什麼我們實現接口抽象類
- 15. 爲什麼我們在這裏使用接口實現?
- 16. 爲什麼一個類中實現的C#接口方法必須公開?
- 17. 我不明白爲什麼我的「Comparable」接口不工作
- 18. 爲什麼布爾包裝類實現Serializable接口和Comparable接口?它有什麼用處?
- 19. 將`DataGrid`替換爲`GridView`時,我們必須改變什麼?
- 20. 爲什麼我們必須同時符合UIViewController和UITableViewDataSource?
- 21. 爲什麼我們必須在onClick方法中添加'查看'作爲參數,以及它做了什麼?
- 22. 爲什麼我必須在屬性上實現set-method?
- 23. 何時以及爲什麼在測試verilog模塊時必須使用DUT?
- 24. 爲什麼compareTo()有它自己的實現主體,而Comparable是一個接口?
- 25. 何時子類AbstractBorder以及何時實現Border接口?
- 26. 爲什麼我們需要在實現功能接口時編寫「implements InterfaceName」?
- 27. 必須實現接口A或接口B(只有一個)
- 28. 爲什麼ContextSwitch必須是原子的,以及如何在實踐中實現這一點?
- 29. 我是否必須實現Java Media Framework接口?
- 30. 爲什麼我的對象沒有實現Comparable排序?
請參閱http://stackoverflow.com/questions/1167478/what-is-a-practical-application-of-javas-compareto-method。 – starblue 2009-08-03 10:35:56