hashmap put/get的大致执行逻辑
时间: 2023-06-01 10:06:52 浏览: 112
当调用put(K key, V value)方法时,先根据key的hashCode()方法返回的哈希值定位到对应的桶位置。如果当前桶位置没有元素,直接将新元素插入到桶中,然后判断是否需要扩容,如果需要,则进行扩容操作。如果当前桶位置已经存在元素,那么就需要遍历桶中的链表或者红黑树,查找是否已经有相同的key,如果有,更新对应的value值,否则新增一个链表或者红黑树节点。当调用get(Object key)方法时,先根据key的hashCode()方法返回的哈希值定位到对应的桶位置,然后遍历桶中的链表或者红黑树,查找是否存在对应的key,如果存在,返回对应的value值,否则返回null。
阅读全文