新建hashmap时初始化hashmap,往里面put值
时间: 2023-08-24 19:56:17 浏览: 123
当你创建一个HashMap并初始化它时,你可以使用以下方式将键值对放入HashMap中:
```java
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
HashMap<String, Integer> hashMap = new HashMap<>();
// 使用put方法将键值对放入HashMap
hashMap.put("key1", 1);
hashMap.put("key2", 2);
hashMap.put("key3", 3);
// 打印HashMap中的值
System.out.println(hashMap);
}
}
```
在这个示例中,我们首先创建了一个HashMap对象,并使用`put`方法将键值对放入HashMap中。键是字符串类型,值是整数类型。然后,我们打印HashMap中的值,输出为`{key1=1, key2=2, key3=3}`。
你可以根据需要重复使用`put`方法来添加更多的键值对到HashMap中。注意,如果你尝试使用相同的键来放入新的值,它将会覆盖之前的值。
希望这个示例可以帮助你理解如何创建并初始化HashMap,并往里面添加键值对。如果有任何疑问,请随时提问。
相关问题
hashmap初始化值
HashMap的初始化值可以通过以下几种方式来实现:
1. 使用空构造函数:
```java
HashMap<String, Integer> map = new HashMap<>();
```
2. 使用静态方法`of`(Java 9及以上版本):
```java
Map<String, Integer> map = Map.of("key1", 1, "key2", 2);
```
3. 使用`put`方法逐个添加键值对:
```java
HashMap<String, Integer> map = new HashMap<>();
map.put("key1", 1);
map.put("key2", 2);
```
4. 使用另一个Map来初始化:
```java
Map<String, Integer> existingMap = new HashMap<>();
existingMap.put("key1", 1);
existingMap.put("key2", 2);
HashMap<String, Integer> map = new HashMap<>(existingMap);
```
这些方法都可以用来初始化HashMap并设置初始值。根据你的需求,选择适合的方式即可。
HashMap的初始化,put流程,get流程,扩容流程说明?
HashMap的初始化:
1. 创建一个初始容量为16的数组,用于存储键值对。
2. 设置一个加载因子(默认为0.75),用于控制数组扩容的阈值。
3. 初始化HashMap的大小为0。
put流程:
1. 根据传入的键值对,计算键的哈希值。
2. 根据哈希值计算出在数组中的存储位置(通过哈希值与数组长度-1进行位运算)。
3. 如果该位置为空,则直接将键值对存储在该位置。
4. 如果该位置已经存在其他键值对,则进行链表操作或红黑树操作(从JDK1.8开始,当链表长度超过8时,会转换为红黑树)。
a. 如果存在相同的键,则更新对应的值。
b. 如果不存在相同的键,则将新的键值对添加到链表或红黑树中。
5. 如果链表或红黑树长度超过阈值(8或6),则进行树化操作。
get流程:
1. 根据传入的键,计算键的哈希值。
2. 根据哈希值计算出在数组中的存储位置。
3. 如果该位置为空,则返回null,表示未找到对应的值。
4. 如果该位置存在键值对,则遍历链表或红黑树,找到对应的键值对。
a. 如果存在相同的键,则返回对应的值。
b. 如果不存在相同的键,则返回null,表示未找到对应的值。
扩容流程:
1. 当HashMap中的键值对数量达到数组长度与加载因子的乘积时,即达到阈值,触发扩容操作。
2. 创建一个新的两倍大小的数组,并将旧数组中的键值对重新分配到新数组中。
3. 重新计算键的哈希值,并计算在新数组中的存储位置。
4. 如果该位置为空,则直接将键值对存储在该位置。
5. 如果该位置已经存在其他键值对,则进行链表操作或红黑树操作。
a. 如果存在相同的键,则更新对应的值。
b. 如果不存在相同的键,则将新的键值对添加到链表或红黑树中。
阅读全文