1

我有一个类,它implements comparable可以根据其中一个类变量来比较和排序其实例的数组。现在我希望能够使用Arrays.binarySearch. 为此,覆盖该equals方法就足够了吗?

4

2 回答 2

4

不,binarySearch适用于“或多或少”比较而不是相等比较。如果您Comparable正确实施,以便它始终如一地遵守接口,特别是在项目相等时返回 0,那么这应该是所需要的。(或者,您可以指定一个Comparator.)

当然,数组必须正确排序才能binarySearch工作......

于 2012-10-01T13:51:59.367 回答
0

equals不用于排序操作。相反,假设compareTo == 0equals == true是一回事。

相反,您需要实现 compareTo 以在它们相等时返回 0 或实现您自己的比较器。

于 2012-10-01T13:52:42.033 回答