码迷,mamicode.com
首页 > 其他好文 > 详细

在 JDK 7 版本以上, Comparator 要满足自反性,传递性,对称性

时间:2017-02-10 20:17:38      阅读:3235      评论:0      收藏:0      [点我收藏+]

标签:没有   student   illegal   compare   相同   相等   public   rri   collect   

在 JDK 7 版本以上, Comparator 要满足自反性,传递性,对称性,不然 Arrays . sort ,
Collections . sort 会报 IllegalArgumentException 异常。
说明:
1 ) 自反性: x , y 的比较结果和 y , x 的比较结果相反。
2 ) 传递性: x > y , y > z ,则 x > z 。
3 ) 对称性: x = y ,则 x , z 比较结果和 y , z 比较结果相同。
反例:下例中没有处理相等的情况,实际使用中可能会出现异常:
new Comparator<Student>() {
@Override
public int compare(Student o1, Student o2) {
return o1.getId() > o2.getId() ? 1 : -1;
}
}

在 JDK 7 版本以上, Comparator 要满足自反性,传递性,对称性

标签:没有   student   illegal   compare   相同   相等   public   rri   collect   

原文地址:http://www.cnblogs.com/amos-s/p/6387439.html

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!