一、说明
hashMap在java1.7和java1.8版本中有做一些调整,我们本篇只说java1.7的hashMap。
二、数据结构
hashMap的数据结构是由数组和链表组成,table是一个存放Entry对象的数组,每个Entry对象由4个属性组成,分别是key、value、next、hash,key和value是我们熟知的键值对,不需要过多解释,next是当前元素在链表中指向下一个元素的引用,hash是计算出来的hashcode,hashMap中的hsah是通过对key.hashcode()进行一定操作得出的,并不是直接使用key.hashcode()方法计算数来的值。
三、属性信息
先来了解下hashMap中一些重要的属性:
//Hashmap的初始化大小,初始化的值为16,1往右移4位为16
static final int DEFAULT_INITIAL_CAPACITY = 1