加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 为什么在LinkedHashMap中迭代桶的速度比HashMap快?

发布时间:2020-12-14 23:37:08 所属栏目:Java 来源:网络整理
导读:我很难理解这一点. 谷歌搜索,我发现 “HashMap iterator has to iterate through all the buckets including empty buckets” 和 “in LinkedHashMap all the entries are doubly linked”. 如果是这种情况,为什么唯一的HashMap必须迭代空桶,而不是LinkedHas
我很难理解这一点.

谷歌搜索,我发现

“HashMap iterator has to iterate through all the buckets including
empty buckets”

“in LinkedHashMap all the entries are doubly linked”.

如果是这种情况,为什么唯一的HashMap必须迭代空桶,而不是LinkedHashMap,尽管两者都使用相同的桶概念实现?所有条目都是双重联系的,意思是“所有的桶和元素都是双重联系的”,或者只是“元素是双重联系的”.

请给我一个解释LinkedHashMap中双向链接桶实现的图表.

提前谢谢了.

解决方法

LinkedHashMap存储桶节点(条目)保存额外的两个指针(之前,之后)以维持顺序.

这是创建时的结构.

Map<Integer,String> linkedHashMap = new LinkedHashMap<Integer,String>();

现在让我们添加一个元素.

linkedHashMap.put(1,"obj1");

这里是linkedHashMap标头之前,之后是指向入口对象.

让我们添加另一个元素.

linkedHashMap.put(15,"obj15");

检查指针随红色前一状态的变化

让我们再添加一个元素.

linkedHashMap.put(4,"obj4");

当另一个条目插入相同的哈希时,每个条目中的下一个指针形成SingleLikedList.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读