我看到ConcurrentHashMap将其(键,值(对存储在Node
列表中。但是,Node
也可以组织为TreeBin
。
因此,ConcurrentHashMap 的底层数据结构是一个列表,其中包含独立或树的元素。
为什么数据结构既不是列表也不是树?
这种更复杂的实现有什么用?
二叉树结构允许按元素的自然顺序或哈希代码(如果项目在其他方面不具有可比性(轻松排序。 对于相当大的哈希桶,这允许快速检索元素。
然而,在较小的哈希桶中,维护此树的成本远远大于搜索树结构所带来的任何节省。 在这种情况下,平均而言,列表将更有效率。