Arrays.sort 與 Collections.sort

在JDK7版本以上,Comparator要知足自反性,傳遞性,對稱性,否則Arrays.sort,Collections.sort會報IllegalArgumentException異常。ide

說明:code

1) 自反性:x,y的比較結果和y,x的比較結果相反。get

2) 傳遞性:x>y,y>z,則x>z。io

3) 對稱性:x=y,則x,z比較結果和y,z比較結果相同。異常

反例:下例中沒有處理相等的狀況,實際使用中可能會出現異常:
 sort

new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getId() > o2.getId() ? 1 : -1;
}
}
相關文章
相關標籤/搜索