hashmap put过程
时间: 2023-11-08 11:25:53 浏览: 96
hashmap实现原理
HashMap put方法的基本过程如下:
1. 首先,计算key的哈希值。
2. 然后,通过哈希值和HashMap的容量计算出key的存储位置。
3. 如果该位置上已经有元素,那么就遍历该位置上的元素,如果找到了key相同的元素,则用新的value替换原来的value,并返回原来的value。
4. 如果该位置上没有元素,那么就直接把新的key-value对插入到该位置上。
5. 如果插入新的key-value对之后,HashMap的size超过了threshold(即容量的75%),那么就需要进行扩容操作。
6. 扩容操作会创建一个新的数组,将原来的元素重新哈希并插入到新的数组中,同时更新HashMap的capacity、threshold和table等属性。
注意事项:
1. HashMap的key和value都可以为null,但是需要注意的是,如果key为null,则它的哈希值为0,而在HashMap中,0是一个有效的哈希值,因此,null key会被存储在table[0]的位置上。
2. 如果多个key的哈希值相同,那么它们会被存储在同一个位置上,这种情况下,会使用链表或红黑树等数据结构来存储这些元素。
3. 在多线程环境下,HashMap并不是线程安全的,因此,在并发访问HashMap时,需要使用线程安全的Map实现,比如ConcurrentHashMap。
阅读全文