![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
HashMap
段远山
山不向我走来,我便向它走去!.........张雨亭
展开
-
为什么 HashMap 加载因子是0.75?而不是0.8,0.6 ,0.5?
为什么HashMap需要加载因子? HashMap的底层是哈希表,是存储键值对的结构类型,它需要通过一定的计算才可以确定数据在哈希表中的存储位置: staticfinalinthash(Objectkey){ inth; return(key==null)?0:(h=key.hashCode())^(h>>>16); } //AbstractMap publicinthashCode(){ inth=0; ...原创 2020-07-14 09:44:32 · 463 阅读 · 0 评论 -
闲来无事! ! 看看HashMap
HashMap1.7 的问题还有1.7 和1.8 的差别。 HashMap 是一个并发不安全的容器,在迭代操作是采用的是fast-fail 机制;在并发添加操作中会出现丢失更新的问题;因为采用头插法在并发扩容时会产生环形链表的问题,导致CPU 到达100%,甚至宕机。 解决并发问题可以采用 Java 类库提供的Collections 工具包下的Collections.synchronized...原创 2020-05-01 16:20:28 · 166 阅读 · 0 评论 -
带你一起撸HashMap! ! ! !! ! ! !六到飞起的那种! ! ! !
面试中大家常被问到HashMap的相关知识点,但是工作中有很少使用,听说是因为HashMap里面有很多知识点可以提现一为程序员基本功扎不扎实. 什么是HashMap?( hashmap的初始值是16,即2的4次方,之后的每次扩容都是两倍扩容) 基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了非同步和允许使用 null 之外,Has...原创 2020-04-27 09:35:09 · 938 阅读 · 0 评论 -
HashMap存储结构
HashMap存储结构 这里需要区分一下,JDK1.7和 JDK1.8之后的 HashMap 存储结构。在JDK1.7及之前,是用数组加链表的方式存储的。 但是,众所周知,当链表的长度特别长的时候,查询效率将直线下降,查询的时间复杂度为 O(n)。因此,JDK1.8 把它设计为达到一个特定的阈值之后,就将链表转化为红黑树。这里简单说下红黑树的特点: 每个节点只有两种颜色:红色或者黑色 根节点必...原创 2020-04-22 11:42:35 · 663 阅读 · 0 评论