我需要通過適當的例子來理解可比較和比較之間的差異。我看過幾本書,但差異並不明顯。比較器和可比較器有什麼區別?
1
A
回答
0
Comparable
定義了類的實例具有自然順序,例如,可以從小到大排列的數字。在其他情況下,這定義了默認排序,例如當使用字符串。
另一方面,Comparator
是一個可能定義非標準排序的對象,例如,您可以提供一個比較器來對數字從大到小進行排序。
4
可比較的接口:要被排序的對象必須實現此接口的類。在此,我們必須實現compareTo(Object)方法。
,例如:
public class State implements Comparable{
@Override
public int compareTo(Object arg0) {
State state=(State) arg0;
return (this.stateId < state.stateId) ? -1: (this.stateId > state.stateId) ? 1:0 ;
}}
如果任何類實現可比inteface那麼那個對象的集合能自動使用Collection.sort()或Arrays.sort進行排序()對象將被排序的基礎上該類中的compareTo方法。
在java中實現Comparable的對象可以用作SortSetMap中的鍵,例如TreeSet或SortSetSet,就像TreeSet一樣,無需實現任何其他接口。
比較接口:其中需要排序的對象不需要實現此接口的類。有些第三類可以實現此接口來排序..e.g.StateSortByIdComparator類可以實現Comparator接口,通過id對狀態對象的集合進行排序。例如:
public class StateSortByIdComparator implements Comparator<State>{
@Override
public int compare(State state1, State state2) {
return (state1.getStateId() < state2.getStateId()) ? -1: (state1.getStateId() > state2.getStateId()) ? 1:0 ;
}
}
相關問題
- 1. ''和「」比較有什麼區別?
- 2. Java:SWT TableViewer中的分揀機和比較器有什麼區別
- 3. 比較器和可比
- 4. 可比較和比較器接口
- 5. Java比較器和可比較
- 6. eclipse比較API有什麼區別?
- 7. 比較器優於比較器的方式是什麼?
- 8. 比較比較器的utils
- 9. 我的比較器有什麼問題?
- 10. 於類別比較/可比
- 11. PriorityQueue和比較器
- 12. 比較器和BST
- 13. 比較器/比較/比較器鏈接問題
- 14. typeof和當比較對象類型時有什麼區別?
- 15. append和addObject +有什麼區別+比較兩個日期
- 16. Julia中的「==」和「===」比較運算符有什麼區別?
- 17. 比較運算符和邏輯運算符有什麼區別?
- 18. 輸出比較和脈寬調製功能有什麼區別?
- 19. 如何計算比較器/可比較器中的比較次數?
- 20. 爲什麼Backbone比較器不能比較兩個對象?
- 21. 適用於可比較和比較器的泛型
- 22. 比較器/排序/可比較的方法和返回值
- 23. 什麼比較方法比較好?
- 24. Java - 比較器
- 25. 爲什麼字符串實現可比較而不是比較器接口
- 26. Concepts-Lite迭代器比較比較
- 27. Java接口比較器靜態比較
- 28. 我可以使用比較器而不實現可比較嗎?
- 29. 「與Workspace版本比較」和「與最新版本比較」有何區別?
- 30. 比較器爲什麼要實現Serializable?
請發佈您不瞭解的內容。 –