覆盖Arrays.BinarySearch的等于方法

时间:2012-10-01 13:50:21

标签: java equals binary-search

我有一个类implements comparable来比较并根据其中一个类变量对其实例数组进行排序。现在我希望能够使用Arrays.binarySearch搜索此类对象的数组。为此,覆盖equals方法是否足够?

2 个答案:

答案 0 :(得分:4)

不,binarySearch处理“或多或少”的比较,而不是平等比较。如果你正确地实现Comparable,那么它一致地服从接口,特别是当项目相等时返回0,那应该是所需的全部。 (或者,您可以指定Comparator。)

当然,必须在binarySearch工作之前对阵列进行适当的排序......

答案 1 :(得分:0)

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

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