23.说一下 HashMap 的实现原理?
hashMap基于hashing原理,我们通过put()和get()方法存储和获取对象。当我们将键值对传给put()方法时;它调用键对象的hashCode()方法来计算hashCode,然后找到bucket位置来存值对象。当获取对象时,通过键值对的equals()方法来找到正确的键值对。然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞时,对象会存储在链表的下一个节点。hashMap在每个链表的阶段存储键值对对象。
当两个不同的键对象hashCode相同时会发生什么?他们会存储在同一个bucket位置的链表中。建对象的equals()方法用来找到键值对。