Java compare方法和compareTo方法

Java Comparator接口排序用法,詳細介紹能夠閱讀這個連接的內容:http://www.javashuo.com/article/p-exdndlvt-b.htmlhtml

 

對於 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,可修改方法體中的內容,返回不一樣的參數值(整型)ide

若是返回 1  說明o1 > o2  如 2  1spa

若是返回 0  說明o1 = o2   如 cc  cccode

若是返回 -1 說明o1 < o2   如 6  7htm

也能夠調用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() 方法的參數比較同樣。blog

比較方法:排序

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

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

比較過程:

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

相關文章
相關標籤/搜索