在 JDK 7 版本以上, Comparator 要满足自反性,传递性,对称性
Posted 谜一样
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 JDK 7 版本以上, Comparator 要满足自反性,传递性,对称性相关的知识,希望对你有一定的参考价值。
在 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 要满足自反性,传递性,对称性的主要内容,如果未能解决你的问题,请参考以下文章
在使用JDK1.7及以上版本时无法连接数据库、无法连接sftp. 只有将环境变量改为JDK1.6后才可以使用。
错误记录Java 中 ArrayList 排序 ( 使用 Comparator 接口时注意 compare 返回值是 -1 和 +1 )