Java:为什么要调用TreeMap" Tree"地图?

时间:2015-10-21 05:09:44

标签: java data-structures

我无法理解为什么TreeMap被称为TreeMap而不是SortedMap。据我所知,TreeMap是一个自动对其元素进行排序的地图。计算机科学中的树就像一张图。那为什么呢?

3 个答案:

答案 0 :(得分:5)

因为TreeMap是由Red–black tree

实现的

答案 1 :(得分:3)

  

我无法理解为什么TreeMap被称为TreeMap而不是SortedMap。

TreeMap是界面SortedMap的实现。 SortedMapTreeMap 实施。< / p>

  

据我所知,TreeMap是一个自动对其元素进行排序的地图。

是的,TreeMap保证默认情况下其元素将按升序键排序。

好读here

答案 2 :(得分:3)

正如F. Ju所说,TreeMap是由红黑树实现的。您还可以看到Javadocs

  

基于Red-Black树的SortedMap接口实现。这个   class保证地图按升序键排序,排序   根据密钥类的自然顺序(参见Comparable),   或者在创建时提供的比较器,具体取决于哪个   使用构造函数。

     

请注意由排序地图维护的排序(无论是否为   提供显式比较器)必须与equals一致   这个有序映射是为了正确实现Map接口。 (看到   可比较或比较器的精确定义与   等于。)这是因为Map接口是根据定义的   等于操作,但是地图使用它执行所有关键比较   compareTo(或compare)方法,因此两个被认为相等的键   从排序映射的角度来看,这种方法是相同的。该   即使排序的顺序是有序的,也可以很好地定义有序映射的行为   与平等不一致;它只是没有遵守一般合同   Map接口。