我无法理解为什么TreeMap被称为TreeMap而不是SortedMap。据我所知,TreeMap是一个自动对其元素进行排序的地图。计算机科学中的树就像一张图。那为什么呢?
答案 0 :(得分:5)
因为TreeMap是由Red–black tree
实现的答案 1 :(得分:3)
我无法理解为什么TreeMap被称为TreeMap而不是SortedMap。
TreeMap
是界面SortedMap
的实现。或 SortedMap
由TreeMap
实施。< / p>
据我所知,TreeMap是一个自动对其元素进行排序的地图。
是的,TreeMap
保证默认情况下其元素将按升序键排序。
好读here
答案 2 :(得分:3)
正如F. Ju所说,TreeMap是由红黑树实现的。您还可以看到Javadocs:
基于Red-Black树的SortedMap接口实现。这个 class保证地图按升序键排序,排序 根据密钥类的自然顺序(参见Comparable), 或者在创建时提供的比较器,具体取决于哪个 使用构造函数。
请注意由排序地图维护的排序(无论是否为 提供显式比较器)必须与equals一致 这个有序映射是为了正确实现Map接口。 (看到 可比较或比较器的精确定义与 等于。)这是因为Map接口是根据定义的 等于操作,但是地图使用它执行所有关键比较 compareTo(或compare)方法,因此两个被认为相等的键 从排序映射的角度来看,这种方法是相同的。该 即使排序的顺序是有序的,也可以很好地定义有序映射的行为 与平等不一致;它只是没有遵守一般合同 Map接口。