Java compare方法和compareTo方法


Java Comparator接口排序用法,詳細介紹可以閱讀這個鏈接的內容:https://www.cnblogs.com/shizhijie/p/7657049.html

 

對於 public int compare(Object arg0, Object arg1)的理解

 1 //數組排序
 2 String[] str = new String[5];
 3 Arrays.sort(str, new Comparator<String>() {
 4     @Override
 5     public int compare(String o1, String o2) {
 6         // TODO Auto-generated method stub
 7         return 0;
 8     }
 9 });
10 //List集合排序
11 ArrayList<String> list = new ArrayList<String>();
12 Collections.sort(list, new Comparator<String>() {
13     @Override
14     public int compare(String o1, String o2) {
15         // TODO Auto-generated method stub
16         return 0;
17     }
18 });

上述代碼中重寫了Comparator接口中的compare()方法,有兩個參數自定義為 o1o2,默認返回 0,可修改方法體中的內容,返回不同的參數值(整型)

如果返回 1  說明o1 > o2  如 2  1

如果返回 0  說明o1 = o2   如 cc  cc

如果返回 -1 說明o1 < o2   如 6  7

也可以調用compareTo()方法在return時對參數進行比較:

1 String[] str = new String[5];
2 Arrays.sort(str, new Comparator<String>() {
3     @Override
4     public int compare(String o1, String o2) {
5         // TODO Auto-generated method stub
6         return o1.compareTo(o2);
7     }
8 });

compareTo()方法返回值為 int 類型,比較兩個值,如:o1.compareTo(o2)。返回1,0,-1同 compare() 方法的參數比較一樣。

比較方法:

(1) 字符串與對象進行比較

(2) 按字典順序比較兩個字符串

比較過程:

先比較對應字符的大小(ASCII碼順序),如果第一個字符和參數的第一個字符不等,結束比較,返回他們之間的差值,如果第一個字符和參數的第一個字符相等,則以第二個字符和參數的第二個字符做比較,以此類推,直至得到最終結果或者其中一個參數結束。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM