在比较器接口中使用equals()方法?

nit*_*nit 11 java

equals()该方法适用于Object该类中的所有Java集合类.此方法也在Comparator接口中声明,那么在Comparator中声明此方法的目的是什么?在哪种情况下使用它以及如何使用?

NPE*_*NPE 10

在Comparator中声明此方法的目的是什么?

我认为这是设计者突出这样一个事实的方式,即Comparator.equals()对实现该接口的任何类强加一些额外的要求:

此外,true仅当指定的对象也是比较器并且它与此比较器施加相同的顺序时,此方法才能返回.因此,comp1.equals(comp2)暗示sgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2))对于每个对象的引用o1o2.

该方法可用于确定两个不同的比较器是否施加相同的顺序.


Ste*_*n C 5

我认为主要原因是要明确该equals方法是为了测试Comparator自身.当你想到它时,这是显而易见的,但我能想象有些人可能期望equals(Object)(某种程度上)在语义上与compare(T, T)方法相关.

它还允许记录一些常识性指南,以便将两个比较器视为平等.

无论哪种方式,equals(Object)界面中方法的存在用于文档目的.


小智 0

-当声明比较器与另一个对象(参数)进行比较时