2011-10-18 6 views
1

Java TreeSetがオブジェクトソートロジックを処理するコンパレータで設定されている場合でも、オブジェクト(クラス)はcomparableを実装し、有効なcompareToメソッドを実装しています。TreeSetコンパレータOR comparble.compareTo()priority

どちらが優先されますか?コンパレータ内のロジックまたはcompareToメソッド内のロジック?

多くのありがとうございます。

答えて

5

TreeSetのコンストラクタに渡されたComparatorが優先されます。これにより、オブジェクトのcompareToによって実装されているものとは異なる比較アルゴリズムを使用できます。そうでなければ、TreeSetとは異なる比較アルゴリズムを使用することはできません。

+0

+1ポイントを明確にします。参照のために+1 –

4

これはかなり明確にin the Javadocs(強調追加)綴られる:

public TreeSet(Comparator<? super E> comparator)
は、新しい空のツリーセット、指定されたコンパレータに従ってソートを構築します。 ...

パラメータ:
- このセットの注文に使用されるコンパレータ。

+0

+1。 –