Java比较器之Comparable接口与Comparator接口的使用
-
在java中經常會涉及到對象數組的排序問題,便涉及到對象之間的比較問題。
-
java實現對象排序的方式有兩種:
自然排序:java.lang.Comparable;
定制排序:java.util.Comparator; -
java.lang.Comparable接口:自然排序
1.像String、包裝類等實現了Comparable接口,重寫了compareTo(obj)方法,給出了比較兩個對象大小的方法;
2.像String、包裝類等重寫了compareTo()方法以后,進行了從小到大的排列
3.重寫compareTo(obj)規則:
如果當前對象this大于形參對象obj,則返回正整數,
如果小于,返回負數
如果等于,返回0
4.對于自定義類,如果需要排序,可以讓自定義類實現comparable接口,重寫compareTo(obj),在compareTo(obj)方法中指明如何排序
- java.until.Comparator:定制排序
1.當元素的類 型沒有實現java.lang.Comparable接口而又不方便修改代碼,
或者實現了java.lang.Comparable接口的排序規則不適合當前的操作,
那么可以考慮使用Comparator的對象來序,強行對多個對象進行整體排序的比較。
2.重寫compare(Object o1,Object o2)方法,比較o1和o2的大小: 如果方法返回正整數,則表示01大于o2;
如果返回負整數,表示o1小于o2;
如果返回0,表示相等。
3.可以將Comparator傳遞給sort方法(如Collections sort或Arrays.sort) ,從而允許在排序順序上實現精確控制。
4.還可以使用Comparator來控制某些數據結構(如有序set或有序映射)的順序,或者為那些沒有自然順序的對象collection 提供排序。
總結
以上是生活随笔為你收集整理的Java比较器之Comparable接口与Comparator接口的使用的全部內容,希望文章能夠幫你解決所遇到的問題。