什么是HashMap


【什么是HashMap】HashMap内部是通过一个数组实现的 , 只是这个数组比较特殊 , 数组里存储的元素是一个Entry实体(在JAVA8中为Node) , 这个Entry实体主要包含key、value以及一个指向自身的next指针 。HashMap是基于hashing实现的 , 当进行put操作时 , 根据传递的key值得到它的hashcode , 然后再用这个hashcode与数组的长度进行模运算 , 得到一个int值 , 就是Entry要存储在数组的位置(下标);当通过get方法获取指定key的值时 , 会根据这个key算出它的hash值(数组下标) , 根据这个hash值获取数组下标对应的Entry , 然后判断Entry里的key , hash值或者通过equals()比较是否与要查找的相同 , 如果相同 , 返回value , 否则的话 , 遍历该链表(有可能就只有一个Entry , 此时直接返回null) , 直到找到为止 , 否则返回null 。

    推荐阅读