关于HashMap
1、为什么用HashMap?
- HashMap是一个散列桶(数组和链表),它储存的内容是键值对映射(key-value)
- HashMap采用了数组和链表的数据结构,能在查询和修改时方便继承数组的线性查找和链表的寻址修改
- HashMap是非synchronized,所有很快
- HashMap可以接受null建和空值,而HashTable不能(因为equals()方法需要对象,HashMap是后出的Api经过处理了才可以的)
HashMap是基于hashing原理,我们使用put(key,value)存储对象到HashMap中,使用get(key)从HashMap中获取对象,当我们给put()方法传递键值对时,我们先对键调用hashCode()方法,返回的hashCode用于找到bucket位置来存储Entry对象。
3、Hash冲突(碰撞)
两个对象的hashCode的值可能会相同,虽然会相同但不一定代表着他们相等(equals()和hashCode()两个方法会判断),因为hashCode相同,所以bucket的位置也相同,这时就会发生碰撞。因为hashMap使用链表存储对象,所以entry(包含有键值对的Map.Entry对象)会存储在链表中。
4、如果你想了解更多
【关于HashMap】下面的博客可能会对你有些帮助
https://baijiahao.baidu.com/s?id=1618550070727689060&wfr=spider&for=pc
https://blog.csdn.net/ty564457881/article/details/78206049
推荐阅读
- 一个人的碎碎念
- 野营记-第五章|野营记-第五章 讨伐梦魇兽
- Shell-Bash变量与运算符
- 清明,是追思、是传承、是感恩。
- 牛人进化+|牛人进化+ 按自己的意愿过一生
- 七老修复好敏感、角质层薄、红血丝
- 华为旁!大社区、地铁新盘,佳兆业城市广场五期!
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- 四首关于旅行记忆的外文歌曲
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。