Java HashMap 集合类简介

java HashMap是一个数组和链表组成的。

链表:一条线性的,通过某些算法指向数组的index(int hash = key.hashCode();int index = (hash & 0x7FFFFFFF) % table.length;)

hash:不是唯一对应与key的,可能多个key指向同一个hash

table[index]:table就是数据,table[index]就是一个链表

Entry:this.key= key;

           this.value= value;

           this.hash= hash;

           this.next= next;  //它的后一个  这样一个接着一个形成链表

在put的时候通过key,然后使用算法得到index,然后判断数组的这个index项是否有key了,如果有了是否有同一个key(因为是链表),如果同样就是覆盖。如果没有就新建一个,并且他永远是链表的头(table[index] =newHashMapEntry(key,value,hash,table[index]);)


参考资料:


Java Map 集合类简介

boy00fly.iteye.com/blog/1139845


HashMap实现原理分析 - Alpha's 学习笔记 - 博客频道 - CSDN.NET

你可能感兴趣的:(Java HashMap 集合类简介)