HashMap详解
一、HashMap简介
HashMap是Java中最常用的集合类之一,它实现了Map接口,用于存储键值对。HashMap的底层实现是基于哈希表的,因此它的查询速度非常快。但是,它的缺点是遍历顺序是不确定的。
二、HashMap的基本操作
1. 创建HashMap对象
要创建一个HashMap对象,需要指定其初始容量和加载因子。例如:
import java.util.HashMap;
public class HashMapDemo {
public static void main(String[] args) {
HashMap<String, Integer> map = new HashMap<>(16, 0.75f);
}
}
2. 添加元素
向HashMap中添加元素有两种方法:put()和putIfAbsent()。
put()方法
map.put("key", 1);
如果键已经存在,则更新其值;如果键不存在,则添加新的键值对。
putIfAbsent()方法
map.putIfAbsent("key1", 1);
这个方法只有在键不存在时才会添加新的键值对。如果键已经存在,则不进行任何操作。
3. 获取元素
可以使用get()方法根据键获取对应的值。如果键不存在,则返回null。
int value = map.get("key");
4. 删除元素
可以使用remove()方法根据键删除对应的键值对。如果键不存在,则不进行任何操作。还可以使用remove()方法结合参数Object来删除指定的键值对。
map.remove("key");
map.remove("key", 1);
5. 遍历HashMap
可以使用entrySet()方法获取键值对集合,然后使用for-each循环遍历。或者使用keySet()方法获取所有键的集合,再使用for-each循环遍历每个键,然后通过get()方法获取对应的值。还可以使用values()方法获取所有值的集合,再使用for-each循环遍历每个值。需要注意的是,遍历的顺序是不确定的。
// 使用entrySet遍历
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
// 使用keySet遍历
for (String key : map.keySet()) {
Integer value = map.get(key);
System.out.println("Key: " + key + ", Value: " + value);
}