栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

简述:HashMap的相关内容

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

简述:HashMap的相关内容

简述:解释HashMap

HashMap分为以下部分

table:是数组,用来标记顺序的

slot:是哈希槽,对应数组下标

bucket:是哈希桶,存储键值对(JDK8中加入红黑树,如果存储的链表长度大于8时,会将链表转化成红黑树进行存储)


HashMap存在的问题

1.数据丢失 在JDK7中并发赋值时会被覆盖

在源码中,需要把新添加的元素直接放在slot槽中,可以使新添加的元素在下次提取时更快的被访问到

例如:

table[bucketIndex]=new Entery<>(hash,key,value,e);

如果两个线程同时执行到第一处,其中一个线程会被后来的执行的线程所覆盖,从而造成对象化丢失。

2.新表被覆盖

3.已遍历区间再新增元素会丢失

4.迁移丢失:在迁移过程中,有并发时,next被前置成null

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770466.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号