HashMap是数组和单向链表的结合体。当添加元素时,先把k,v放到node对象中。
底层调用hashcode方法计算hash值,得到数组的下标。
1.如果数组下标没有任何元素,则添加成功。
2.如果数组下标位置有链表,则调用equals方法,如果返回false,则添加到链表末端。如果返回true,则覆盖。
查找元素同理,先通过k的hashcode得到数组下标,再调用k的equals方法与链表上的节点对比,如果返回true,则该元素就是要查找的元素。
原文:https://www.cnblogs.com/zhanzhuang/p/13328769.html