运维开发网

Java 实现比较方法的规则

运维开发网 https://www.qedev.com 2020-04-02 10:59 出处:网络 作者:运维开发网整理
像compareTo,必须是“反身,反对称和传递”,是否有任何规则来实现比较方法? 谢谢 从 Comparator API开始: The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw
像compareTo,必须是“反身,反对称和传递”,是否有任何规则来实现比较方法?

谢谢 从 Comparator API开始:

  1. The implementor must ensure that sgn(compare(x, y)) == -sgn(compare(y, x)) for all x and y. (This implies that compare(x, y) must throw an exception if and only if compare(y, x) throws an

    exception.)

  2. The implementor must also ensure that the relation is transitive: ((compare(x, y)>0) && (compare(y, z)>0)) implies compare(x, z)>0.
  3. Finally, the implementor must ensure that compare(x, y)==0 implies that sgn(compare(x, z))==sgn(compare(y, z)) for all z.
  4. It is generally the case, but not strictly required that (compare(x, y)==0) == (x.equals(y)). Generally speaking, any comparator that violates this condition should clearly indicate this fact. The recommended language is “Note: this comparator imposes orderings that are inconsistent with equals.”

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号