树TreeMap中的树是什么意思?

时间:2015-12-19 14:03:58

标签: java dictionary collections tree

我是java新手,特别是java集合。 Java数据结构TreeMap没有任何方法(如getChildren,getParent)来表明它拥有层次结构。词类在类名中有什么意义?

4 个答案:

答案 0 :(得分:0)

“树”部分给出了该类的实现细节。根据{{​​3}},TreeMap

  

基于documentationNavigableMap实施。

名称OrderedMapSortedMap可能会更好,但“树”足以传达班级对其用户的工作方式。

答案 1 :(得分:0)

TreeMap本质上是一个Red-black树,它是一个平衡搜索树。此树的主要用途是确保O(lg(n))查找,而不是对层次结构进行建模。

如果你看一下TreeMap的代码,你会发现它有TreeMap.Entry,定义如下。

 static final class Entry<K,V> implements Map.Entry<K,V> {
    K key;
    V value;
    Entry<K,V> left;
    Entry<K,V> right;
    Entry<K,V> parent;
    boolean color = BLACK;
  ..
 }

但是OOP告诉我们不应该公开实现细节

答案 2 :(得分:0)

数据结构主要是地图,而不是树。但是地图是使用树实现的。 TreeMap提供了一种以排序顺序存储键/值对的有效方法,并允许快速检索。由于它是用户的映射,因此您无需获取树中任何节点的父节点或其子节点,因此无法使用getParentgetChildren函数。

答案 3 :(得分:0)

用两个词来说,TreeMap意味着它是一个Map实现,其中数据存储在树状结构中。这导致元素按其键排序(TreeMap实现SortedMap)。

这是good visualisation of red-black tree

Java中的其他类型的地图是HashMap和LinkedHashmap。 您可以找到差异here