0

因此,Java 中的 TreeMap 类的形式为TreeMap<K,V>. 显然 K 需要是 a Combarable,但这仅在运行时使用强制转换检查,如果不是 aComparable则抛出异常。将此类定义为 是否更有意义TreeMap<K extends Comparable<? super K>, V>

我在这里想念什么?

4

2 回答 2

1

可以为键的一个实例TreeMap提供一个比较器,因此它们不必具有自然的总排序。

[编辑]

更具体地说,TreeMap可以通过向构造函数提供Comparator能够比较两个键的顺序的实例来创建 的实例。如果您以这种方式创建映射,则比较器将用于所有键比较。在这种情况下,密钥不必在本质上具有可比性。

于 2011-05-13T23:54:26.263 回答
0

提供密钥的比较器可以工作。

我以这种方式放置了不可比较的密钥:

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 回答