更具体地说,我想要一个接口来比较对象,这些对象只能进行相等性比较[例如复数],但不能对它们进行总排序.它应该[注意它只返回一个布尔值是/否]
boolean Equals(T object1, T object2);
Run Code Online (Sandbox Code Playgroud)
和哈希码函数.因此,当我使用对象分配它们来收集"相等"对象时,2个"相等"对象不会在两个不同的桶中结束.
int getHashCode(T object);
Run Code Online (Sandbox Code Playgroud)
Java有一个吗?我搜索过,找不到它.
我试图在Hadoop Map Reduce中使用它来将"相等"对象分发到同一个reduce作业,这样我就可以操作所有"相等"的对象.我只关心对象是否相等而且不需要总订单.但是如果两个对象相等,则它们应该具有相同的哈希码.否则他们将最终完成两个不同的减少工作.
请注意,我知道对象的equals和hashcode.但我想要一个外部比较器,它只取决于对象的一部分.因此,对象的平等概念与我的不同.