hashmap中put方法
时间: 2023-03-31 09:02:00 浏览: 145
可以将键值对添加到HashMap中,如果键已经存在,则更新值。如果键不存在,则将键值对添加到HashMap中。如果键为null,则将键值对添加到HashMap的第一个位置。如果值为null,则将键值对添加到HashMap的第二个位置。
相关问题
HashMap中put方法
put方法是HashMap类中的一个方法,用于向HashMap中添加键值对。其方法签名如下:
```java
public V put(K key, V value)
```
其中,key表示要添加的键,value表示要添加的值。该方法返回值为V类型,表示添加前该键对应的值,如果该键不存在,则返回null。
具体实现如下:
1. 首先根据key的hashCode计算它在数组中的位置,如果该位置已经有元素,则会发生冲突。
2. 如果冲突了,就会从该位置开始,遍历数组中的元素,找到第一个与key相等的元素。
3. 如果找到了相等的元素,就用新的value替换旧的value,并返回旧的value。
4. 如果没有找到相等的元素,就新建一个Entry对象,将其放到该位置上,并返回null。
注意,如果数组中的元素数量超过了负载因子乘以数组长度,就会对数组进行扩容。具体扩容的过程可以看这篇文章:https://www.jianshu.com/p/7d8c8a7b6d55
hashmap的put方法
HashMap的put方法用于将键值对插入到HashMap中。其基本语法如下:
```java
public V put(K key, V value)
```
其中,key是要插入的键,value是要插入的值。该方法会将键值对插入到HashMap中,并返回该键对应的旧值(如果该键已经存在)或null(如果该键不存在)。如果HashMap中已经存在该键,那么该方法会用新的值覆盖旧的值。
具体的实现过程是,首先调用hashCode()方法计算键的哈希值,然后根据哈希值计算键值对应的桶的索引,如果该桶还没有任何元素,就直接将键值对插入到该桶中;如果该桶已经有元素,就遍历该桶中的链表或红黑树,找到键值与插入键值相同的节点,然后用新值替换旧值。
需要注意的是,如果键的hashCode()方法返回值相同,但是equals()方法返回值不同,那么它们会被视为两个不同的键,而会被插入到HashMap中的不同桶中。
阅读全文