![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
map
文章平均质量分 93
Bolon0708
昨日已成过往,明日未来可期。
展开
-
面试必考的 HashMap,这篇总结到位了
目录1 概述2 HashMap的数据结构3 三大集合与迭代子4 源码分析单线程rehash多线程并发下的rehashFast-fail线程安全解决方案1 概述HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长.HashMap是非线程安全的,只适用于单线程环境,多线程环境可以采用并发包下的concurrentHashMapHashMap 实现了Serializable接口转载 2021-02-28 19:29:42 · 509 阅读 · 0 评论 -
Map 集合怎么也有这么多坑?一不小心又踩了好几个!
本文设计知识点如下:不是所有的 Map 都能包含 null这个踩坑经历还是发生在实习的时候,那时候有这样一段业务代码,功能很简单,从 XML 中读取相关配置,存入 Map 中。代码示例如下:那时候正好有个小需求,需要改动一下这段业务代码。改动的过程中,突然想到HashMap并发过程可能导致死锁的问题。于是改动了一下这段代码,将HashMap修改成了ConcurrentHashMap。美滋滋提交了代码,然后当天上线的时候,就发现炸了。。。应用启动过程发生NPE...转载 2020-05-14 14:48:25 · 375 阅读 · 0 评论 -
HashMap底层实现原理及面试问题
①HashMap的工作原理HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,对象将会储存在链...转载 2018-07-03 16:56:39 · 294 阅读 · 1 评论 -
遍历取出Map集合key-value数据的4种方法
import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Set;/** * @Auther: liang * @Date: 2018/12/20 10:43 * @Description: */public class MapTest { publ...转载 2018-12-20 11:05:43 · 6579 阅读 · 0 评论