一个对象作为HashMap中的key的时候,先计算出这个对象的hashcode值,通过hashcode值可以确定出这个对象在 HashMap中数组的哪个槽上,HashMap底层数组上的每个槽存储的是一个链表,然后比较链表上每个实体的key是否相等(用equals进行比较),如果相等,就用当前put的value,替换原有数据中的value。否则,新增一个Entry节点,放入这个槽中的节点最前面。
hashcode值可以确定在hashmap中的哪个槽上,equals可以确定这个槽上是否有相同的key,综合起来就可以确定这个map中是否有相同的key。