关于HashMap

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、如果你想了解更多
【关于HashMap】下面的博客可能会对你有些帮助
https://baijiahao.baidu.com/s?id=1618550070727689060&wfr=spider&for=pc
https://blog.csdn.net/ty564457881/article/details/78206049

    推荐阅读