HashMap底层是使用Entry对象数组存储的,而Entry是一个单项的链表,当调用一个put方法将一个键值对添加进来时,先使用hash函数获取该对象的hash值,然后调用indexFor方法查找该对象在数组中应该存储的下标,如果该位置为空,就将value值插入,如果该下标下不为空,如果这两个Entry的key通过equals比较返回true,新Entry的value将覆盖原有Entry的value,但key不会覆盖。如果这两个Entry的key通过equals比较返回false,新添加的Entry将与集合中原有的Entry形成Entry链,而且新添加的Enetry位于Entry链的头部。
最后欢迎大家访问我的个人网站:1024s