美文网首页
关于HashMap

关于HashMap

作者: lirudong | 来源:发表于2019-07-22 14:12 被阅读0次

1、为什么用HashMap?

  • HashMap是一个散列桶(数组和链表),它储存的内容是键值对映射(key-value)
  • HashMap采用了数组和链表的数据结构,能在查询和修改时方便继承数组的线性查找和链表的寻址修改
  • HashMap是非synchronized,所有很快
  • HashMap可以接受null建和空值,而HashTable不能(因为equals()方法需要对象,HashMap是后出的Api经过处理了才可以的)

2、HashMap工作原理

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、如果你想了解更多

下面的博客可能会对你有些帮助
https://baijiahao.baidu.com/s?id=1618550070727689060&wfr=spider&for=pc
https://blog.csdn.net/ty564457881/article/details/78206049

相关文章

  • 关于HashMap

    1、为什么用HashMap? HashMap是一个散列桶(数组和链表),它储存的内容是键值对映射(key-valu...

  • 关于HashMap

    先了解下相关概念: 哈希(Hash):一般叫做散列,意思就是把一堆任意长度的字符串、数字或者二进制输入通过一定的算...

  • HashMap源码分析

    hashmap的分析网上优秀的文章有很多,个人比较推荐美团技术博客上关于hashmap的介绍。由于hashmap广...

  • 源码修炼笔记之HashMap源码解析

    HashMap高频面试题 HashMap备受面试官的青睐,笔者几乎每次面试都会遇到关于HashMap的问题,整理出...

  • ConcurrentHashMap源码分析(JDK8)

    导入 ConcurrentHashMap是HashMap的线程安全版本的实现版本,关于HashMap的分析总结,可...

  • jdk1.8 HashMap红黑树源码解析

    这篇博客主要讲解HashMap1.8的新增特性:红黑树,关于HashMap的其他内容推荐博客HashMap真的教科...

  • HashMap解读

    相信大家对HashMap都非常熟悉, 网上也有很多关于hashmap的源码解析, 此文仅记录本人对HashMap的...

  • [转]深入理解HashMap

    初识HashMap 关于List,ArrayList、LinkedList,CopyOnWriteArrayLis...

  • Java·Hashtable、HashMap、Concurren

    关于HashMap详请见Java·hashmap本文主要讲讲三者的区别 ConcurrentHashMap锁 JD...

  • HashMap, ConcurrentHashMap 原理及源码

    HashMap, ConcurrentHashMap 原理及源码,一次性讲清楚! 网上关于 HashMap 和 C...

网友评论

      本文标题:关于HashMap

      本文链接:https://www.haomeiwen.com/subject/bzrilctx.html