Java TreeSet的底层结构是什么?

时间:2018-09-19 16:51:03

标签: java treeset red-black-tree

Java TreeSet是一种红黑树的自平衡结构。

但是存储数据的结构是什么?数组还是链表?

1 个答案:

答案 0 :(得分:2)

TreeSetTreeMap支持(以类似的方式HashSetHashMap支持)。如果您查看TreeSet构造函数:

public TreeSet() {
    this(new TreeMap<E,Object>());
}

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;
...

那里没有其他数组或列表。