javadocは言う:
マップがそのキーの自然順序付けに従ってソートされた、または
だから、あなたが必要とするマップ作成時に提供されるComparatorによってれます自然順序付けを正しく実装したり、コンパレータを正しく実装したりすることができます。
また、言う:
(注)このソートマップがにある場合は、ツリーマップによって維持順序は、任意のソートマップと同じように、明示的なコンパレータが提供されているかどうか、equalsと一致していなければならないということMapインタフェースを正しく実装してください。これは、Mapインターフェースがequals操作で定義されているが、ソートされたマップはcompareTo(またはcompare)メソッドを使用してすべてのキー比較を実行するため、2つのこのメソッドで等しいとみなされるキーは、ソートされたマップの観点からは等しいです。ソートされたマップの動作は、その順序付けがequalsと矛盾していても明確に定義されています。 Mapインターフェイスの汎用規約に従わないだけです。
Mapの一般規約に従いたい場合、compareTo()メソッドはequals()と一貫していなければなりません。つまり、equals()を正しく実装する必要があります。 )メソッド、および推移的にhashCode()メソッドを使用し、a.equals(b) iff e.compareTo(b) == 0
を確認する必要があります。
大抵の場合、2つのオブジェクトに対して0を返すcompareTo/compareメソッドを実装しているため、これらの2つのオブジェクトがマップによって異なるとみなされるため、
あなたがすでに作成した時点で、ツリーを構築/操作するときに要素を比較する必要があるときに使用できるカスタムコンパレータを指定するオプションがあります。 –