首先,JavaDocs清楚地解释了您应该实现此方法:
此外,仅当指定对象也是一个比较器并且施加与该比较器相同的顺序时,此方法才能返回true。因此,
comp1.equals(comp2)意味着sgn(comp1.compare(o1,o2))==sgn(comp2.compare(o1, o2))对于每个对象引用o1和o2。
但后来:
请注意,始终不要覆盖即可
Object.equals(Object)。
equals()即使它是接口的一部分,如何也不可以覆盖它?因为已经为Java
中的
Object每个对象(在类中)实现了此方法。
在接口的声明仅在那里强调的重要性,
equals()至于
Comparator通过增加额外的Javadoc解释。
顺便说一句,如果您的比较器是无状态的,则应该只有一个实例-在这种情况下,默认
equal()实现就可以了。



