jdk8 源碼 比較器

comparator

  • comparator 擁有惟一的抽象方法compare

將o1和o2進行比較 若是返回負數則說明o1<o2 ,同理,正數 o1>o2 ,0 說明 o1=o2bash

int compare(T o1, T o2)
複製代碼
  • 類型推斷
  • 定義Listlist 此時比較器推斷不出來item是String類型,由於sort接受的第二個參數是reversed()比較器返回來的參數,而item離sort的第一個參數較遠,此時編譯器推斷不出item的類型
Collections.sort(list,Comparator.comparingInt(item->item.length().reversed()))
複製代碼
  • 兩層排序spa

  • thenComparing 在前面的比較器比較兩個元素 若是相等則經過這個方法進一步進行排序code

Collections.sort(list,Comparator.comparingInt(String::length).thenComparing(String.CASE_INSENSTITIVE_ORDER));
複製代碼
相關文章
相關標籤/搜索