hashmap 的实现 个人理解(如有不对,欢迎各位大神指正)

hashMap 可以看做数组和链表的结合体,数组的话是为了快速定位,(直接使用下标定位),链表结构:

  

 链表结构的意义:

  处理当hash值相同时的情况( 个人理解);

 

put方法:

  获取键值的hash值,然后通过位运算确定存放数组的位置(下标):

  

  当该下标位置已经存在对象时,将新对象存入链表中:

  

get方法:

  获取键值的hash值,然后通过位运算确定存放数组的位置(下标)(和put一样),确定位置之后,比较对应的key是否相同,如果不相同继续比较其链表下的对象:

 

posted @ 2018-05-03 11:25  笑对蓝天  阅读(104)  评论(0编辑  收藏  举报