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()方法,有兩個參數自定義爲 o1 和 o2,默認返回 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碼順序),若是第一個字符和參數的第一個字符不等,結束比較,返回他們之間的差值,若是第一個字符和參數的第一個字符相等,則以第二個字符和參數的第二個字符作比較,以此類推,直至獲得最終結果或者其中一個參數結束。