hashmap put 个get的作用
时间: 2023-06-02 14:04:48 浏览: 99
Hashmap是一种键值对的集合,put方法用于将指定的键与值相关联,get方法根据指定的键返回关联的值。put和get方法是Hashmap集合中最基本的操作。通过put方法可以将键值对存储到Hashmap中,通过get方法可以获取指定键对应的值。
相关问题
hashmap put/get的大致执行逻辑
当调用put(K key, V value)方法时,先根据key的hashCode()方法返回的哈希值定位到对应的桶位置。如果当前桶位置没有元素,直接将新元素插入到桶中,然后判断是否需要扩容,如果需要,则进行扩容操作。如果当前桶位置已经存在元素,那么就需要遍历桶中的链表或者红黑树,查找是否已经有相同的key,如果有,更新对应的value值,否则新增一个链表或者红黑树节点。当调用get(Object key)方法时,先根据key的hashCode()方法返回的哈希值定位到对应的桶位置,然后遍历桶中的链表或者红黑树,查找是否存在对应的key,如果存在,返回对应的value值,否则返回null。
hashmap,put、get流程
HashMap是一种基于哈希表实现的Map接口的数据结构,它通过将键映射到值来存储和检索对象,而哈希表则通过散列函数来计算键值对应的哈希码,然后通过哈希码映射到具体的存储位置。
HashMap的put方法流程如下:
1. 首先通过键的hashCode()方法计算键的哈希值。
2. 然后通过哈希值和当前桶数组的长度进行取模运算,得到该键值对应的桶下标。
3. 如果该桶下标对应的链表为空,则直接将该键值对插入到该链表中。
4. 如果该链表不为空,则遍历链表,如果该链表中已经存在该键,则更新该键对应的值;如果该链表中不存在该键,则将该键值对插入到链表的尾部。
5. 如果该链表的长度大于等于TREEIFY_THRESHOLD(默认为8),则将该链表转化为红黑树。
HashMap的get方法流程如下:
1. 首先通过键的hashCode()方法计算键的哈希值。
2. 然后通过哈希值和当前桶数组的长度进行取模运算,得到该键值对应的桶下标。
3. 如果该桶下标对应的链表为空,则返回null。
4. 如果该链表不为空,则遍历链表,如果该链表中存在该键,则返回该键对应的值;如果该链表中不存在该键,则返回null。
5. 如果该链表的长度大于等于TREEIFY_THRESHOLD(默认为8),则在红黑树上执行get操作。
阅读全文