我看到ConcurrentHashMap将其(键,值)对存储在Node
的{{3}}中。但是,Node
也可以a list作为TreeBin
。
因此,ConcurrentHashMap的基础数据结构是一个列表,其中包含独立元素或树元素。
为什么数据结构不是列表还是树?
这种更复杂的实现有什么用?
答案 0 :(得分:3)
二叉树结构允许按元素的自然顺序或哈希码(如果项目在其他方面不具有可比性)轻松排序元素。对于相当大的哈希存储桶,这可以快速检索元素。
但是,在较小的哈希存储桶中,维护该树的成本远远大于搜索树结构所节省的成本。在这种情况下,平均而言,列表会更有效。