为什么ConcurrentHashMap元素也可以是树

时间:2019-04-27 17:55:28

标签: java hashmap concurrenthashmap

我看到ConcurrentHashMap将其(键,值)对存储在Node的{​​{3}}中。但是,Node也可以a list作为TreeBin

因此,ConcurrentHashMap的基础数据结构是一个列表,其中包含独立元素或树元素。

为什么数据结构不是列表还是树?

这种更复杂的实现有什么用?

1 个答案:

答案 0 :(得分:3)

二叉树结构允许按元素的自然顺序或哈希码(如果项目在其他方面不具有可比性)轻松排序元素。对于相当大的哈希存储桶,这可以快速检索元素。

但是,在较小的哈希存储桶中,维护该树的成本远远大于搜索树结构所节省的成本。在这种情况下,平均而言,列表会更有效。