HashMap 是基于数组与链表来实现的,默认容量16,默认装载系数0.75,阀值【默认长度X0.75】数组查询比较快,而链表增删改比较快,其中的put方法,看table是否为空,若为空,进行初始化.首先传入K与V键值对判断key的值是否为nullkey若为null 则放在hash表首位,不为null 求出hash值,根据hash值与数组的长度 做与的运算 来判断把元素放到hash表的那个位置首先看当前key与我要放的位置元素的key是否一致,一致时执行更新操作 ,旧值返回存储新值 不一致时 调用AndEntry方法在内部判断hashmap是否需要扩容,当前key与value值的个数大于等于他的阀值时 进行扩容 一次扩为原来的两倍 否则无需扩容,完成后调用caryentry方法,在方法内部先把储存的hash桶下标所对应的entry对象 先拿出来 把新值存进去 ,旧值放到新的entry对象对应的next引用中去若已存在值,则产生hash碰撞产生链表 //处理旧对象放到 新entry内部map引用指向位置 旧值赋给map引用