【发布时间】:2019-09-16 21:31:18
【问题描述】:
我看到 ConcurrentHashMap 将其(键、值)对存储在 a list 或 Node 中。但是,Node 也可以将be organised 用作TreeBin。
因此,ConcurrentHashMap 的底层数据结构是一个列表,其中包含独立或树的元素。
为什么数据结构既不是列表也不是树?
这个更复杂的实现有什么用处?
【问题讨论】:
标签: java hashmap concurrenthashmap
我看到 ConcurrentHashMap 将其(键、值)对存储在 a list 或 Node 中。但是,Node 也可以将be organised 用作TreeBin。
因此,ConcurrentHashMap 的底层数据结构是一个列表,其中包含独立或树的元素。
为什么数据结构既不是列表也不是树?
这个更复杂的实现有什么用处?
【问题讨论】:
标签: java hashmap concurrenthashmap
二叉树结构可以方便地对元素进行排序,无论是按其自然顺序,还是按哈希码(如果项目不可比较的话)。对于相当大的哈希桶,这允许快速检索元素。
然而,在较小的哈希桶中,维护这棵树的成本远远高于搜索树结构所节省的成本。在这种情况下,平均而言,列表会更有效率。
【讨论】: