1

implements comparableクラス変数の1つに基づいて、インスタンスの配列を比較およびソートするクラスがあります。ここで、を使用してこのクラスオブジェクトの配列を検索できるようにしますArrays.binarySearch。そのためには、equalsメソッドをオーバーライドするだけで十分でしょうか?

4

2 に答える 2

4

いいえ、binarySearch平等の比較ではなく、「多かれ少なかれ」の比較で機能します。Comparableインターフェースに一貫して従うように、特に項目が等しい場合に0を返すように適切に実装している場合は、それだけで十分です。(または、を指定することもできますComparator。)

もちろん、動作する前にアレイを適切に順序付ける必要がありbinarySearchます...

于 2012-10-01T13:51:59.367 に答える
0

equalsソートされた操作には使用されません。代わりに、とは同一であると想定されcompareTo == 0ますequals == true

代わりに、compareToを実装して、等しい場合に0を返すか、独自のComparatorを実装する必要があります。

于 2012-10-01T13:52:42.033 に答える