0

したがって、Java の TreeMap クラスの形式はTreeMap<K,V>. 明らかに K は である必要がありますがCombarable、それは実行時にキャストでのみチェックされ、そうでない場合Comparableは例外がスローされます。このクラスを として定義するほうが理にかなっているのではないでしょうTreeMap<K extends Comparable<? super K>, V>か?

ここで何が欠けていますか?

4

2 に答える 2

1

のインスタンスにTreeMapはキーのコンパレータを指定できるため、自然な全順序付けである必要はありません。

[編集]

より具体的には、のインスタンスは、順序について2つのキーを比較できるTreeMapインスタンスをコンストラクターに提供することによって作成できます。Comparatorこのような方法でマップを作成すると、すべてのキー比較にコンパレータが使用されます。その場合、キーは本質的に比較可能である必要はありません。

于 2011-05-13T23:54:26.263 に答える
0

キーのコンパレータを提供することは機能します。

私はこのようにCommbarableではないキーを置きます:

TreeMap<K, V> myMap = new TreeMap<K, V>(new Comparator<K>(){
    @Override
    int compare(K o1, K o2) {
       ...//Define the compare logic
    }
});

myMap.put(...);
于 2011-05-14T03:36:26.800 に答える