有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

GuavaJava:用于确定等价性的外部类?

Java有一个^{}用于提供类本身外部对象的比较,允许使用多个/替代方法进行有序比较

但是进行无序比较的唯一标准方法是重写类中的equals()

如果我想在类外部提供多个/备用无序比较,我应该怎么做(明显的用例是根据特定属性将集合划分为等价类。)

假设最终用于无序检查(例如,不用于排序或索引),是否可以实现Comparator<T>只检查相等性,如果两个对象相等,则返回0,以及一个值!=当两个对象不相等时为0?(注意:我不跳上这个解决方案的唯一原因是,从技术上讲,它可以通过不提供满足传递性和对称性的关系来打破Comparator的契约。)

似乎应该有一个EqualsComparator<T>标准类之类的东西

(番石榴能处理类似的事情吗?)


共 (1) 个答案

  1. # 1 楼答案

    是的,Guava有^{}接口和^{}类(在Guava release 14.0中删除)

    (是的,在Java中非常有用,但遗憾的是缺少它。我们真的应该为HashMapHashSet等提供选项。)

    虽然Comparator<T>在某些情况下可以使用,但它没有提供对基于哈希的集合很重要的hashCode方法