HashMap介绍

126 阅读1分钟

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);
}