【发布时间】:2011-08-31 15:09:06
【问题描述】:
Java 有一个Comparator<T> 用于提供类本身外部对象的比较,以允许进行有序比较的多个/替代方法。
但是进行无序比较的唯一标准方法是在一个类中覆盖equals()。
当我想在类外部提供多个/交替的无序比较时,我应该怎么做?(明显的用例是根据特定属性将集合划分为等价类。)
假设最终用途是用于无序检查(例如,不用于排序或索引),是否可以实现 Comparator<T>,它只检查是否相等,如果两个对象相等则返回 0,当两个对象相等时返回值 != 0两个物体不相等? (注意:我不采用此解决方案的唯一原因是,从技术上讲,它可以通过不提供满足传递性和对称性的关系来破坏Comparator 的合同。)
似乎应该有一个EqualsComparator<T> 标准类或其他东西。
(番石榴能处理这样的事情吗?)
【问题讨论】:
标签: java guava equivalence-classes