Java中TreeMap的底层数据结构是啥

59 阅读1分钟

在Java中,TreeMap的底层数据结构是红黑树(Red-Black Tree)。红黑树是一种自平衡的二叉搜索树,它具有以下特性:

  1. 每个节点都是红色或黑色。
  2. 根节点是黑色的。
  3. 每个叶子节点(NIL节点,空节点)都是黑色的。
  4. 如果一个节点是红色的,则它的两个子节点都是黑色的。
  5. 对于每个节点,从该节点到其所有后代叶子节点的简单路径上,均包含相同数目的黑色节点。
  6. 红黑树不允许有两个红色节点相连的情况。

TreeMap使用红黑树来存储键值对,并根据键的自然顺序或自定义比较器来对键进行排序。因此,TreeMap中的元素是有序的。在最坏情况下,插入、删除和查找等操作的时间复杂度为O(log n),其中n是TreeMap中的元素个数。