开发者社区> 问答> 正文

在 JDK7 版本及以上,Comparator 要满足哪些条件?

在 JDK7 版本上,Comparator 要满足哪些条件?

展开
收起
鲁花花生油 2021-10-12 17:21:31 1193 0
1 条回答
写回答
取消 提交回答
  • 在 JDK7 版本及以上,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 () {

    @Override

    public int compare(Student o1, Student o2) {

    return o1.getId() > o2.getId() ? 1 : -1;

    }

    };

    资料来源:电子书《阿里巴巴Java开发手册》,下载链接:https://developer.aliyun.com/topic/download?id=1092

    2021-10-12 17:22:33
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
阿里云开发者社区官方技术圈,用户产品功能发布、用户反馈收集等。
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载