Java TreeSetがオブジェクトソートロジックを処理するコンパレータで設定されている場合でも、オブジェクト(クラス)はcomparableを実装し、有効なcompareToメソッドを実装しています。TreeSetコンパレータOR comparble.compareTo()priority
どちらが優先されますか?コンパレータ内のロジックまたはcompareToメソッド内のロジック?
多くのありがとうございます。
Java TreeSetがオブジェクトソートロジックを処理するコンパレータで設定されている場合でも、オブジェクト(クラス)はcomparableを実装し、有効なcompareToメソッドを実装しています。TreeSetコンパレータOR comparble.compareTo()priority
どちらが優先されますか?コンパレータ内のロジックまたはcompareToメソッド内のロジック?
多くのありがとうございます。
TreeSetのコンストラクタに渡されたComparatorが優先されます。これにより、オブジェクトのcompareTo
によって実装されているものとは異なる比較アルゴリズムを使用できます。そうでなければ、TreeSetとは異なる比較アルゴリズムを使用することはできません。
これはかなり明確にin the Javadocs(強調追加)綴られる:
public TreeSet(Comparator<? super E> comparator)
は、新しい空のツリーセット、指定されたコンパレータに従ってソートを構築します。 ...パラメータ:
- このセットの注文に使用されるコンパレータ。
+1。 –
+1ポイントを明確にします。参照のために+1 –