我有一个类,它implements comparable
可以根据其中一个类变量来比较和排序其实例的数组。现在我希望能够使用Arrays.binarySearch
. 为此,覆盖该equals
方法就足够了吗?
问问题
878 次
2 回答
4
不,binarySearch
适用于“或多或少”比较而不是相等比较。如果您Comparable
正确实施,以便它始终如一地遵守接口,特别是在项目相等时返回 0,那么这应该是所需要的。(或者,您可以指定一个Comparator
.)
当然,数组必须正确排序才能binarySearch
工作......
于 2012-10-01T13:51:59.367 回答
0
equals
不用于排序操作。相反,假设compareTo == 0
和equals == true
是一回事。
相反,您需要实现 compareTo 以在它们相等时返回 0 或实现您自己的比较器。
于 2012-10-01T13:52:42.033 回答