Java : Comparable と Comparator [重複] 質問する

Java : Comparable と Comparator [重複] 質問する

重複の可能性があるもの:
compare() と compareTo() の違い
Java: Comparable と Comparator の実装の違いは何ですか?

Comparable と Comparator の主な違いは何ですか。

どのようなシナリオでどちらが好まれるのでしょうか?

ありがとう

更新されました - 例付きの優れたリンク!!

http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html

ベストアンサー1

クラスが実装する場合匹敵しますクラスのメソッドは、compareToそのオブジェクトの「自然な」順序付けを定義します。そのメソッドは、そのオブジェクトの他のメソッドと一致するように契約上義務付けられています (ただし、要求されているわけではありません)。たとえば、.equals()比較の結果が true を返す場合、オブジェクトには常に 0 が返される必要があります。

コンパレータ2 つのオブジェクトを比較する方法の独自の定義であり、自然な順序と一致しない方法でオブジェクトを比較するために使用できます。

たとえば、文字列は通常アルファベット順に比較されます。したがって、"a".compareTo("b")アルファベット順の比較が使用されます。文字列を長さで比較する場合は、カスタム比較子を作成する必要があります。

要するに、大きな違いはありません。どちらも同様の手段の目的です。一般的に、自然順序に対しては比較可能なものを実装し (自然順序の定義は当然解釈の余地があります)、その他の並べ替えや比較のニーズに対しては比較演算子を記述します。

おすすめ記事