HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。HashMap 实现了 Map 接口,根据键的 HashCode 值来存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。HashMap 是无序的,即它不会记录插入的顺序。HashMap 继承于 AbstractMap,实现了 Map、Cloneable、java.io.Serializable 接口。
HashMap 中的 key 与 value 可以是相同类型的,也可以是不同类型的,如 String 类型的 key 和 String 类型的 value,或者 Integer 类型的 key 和 String 类型的 value,在 HashMap 中都是被允许的。
添加元素
可以使用 put() 方法来为 HashMap 添加键值对
访问元素
可以使用 get(key) 方法来获取 key 值对应的 value
删除元素
可以使用 remove(key) 方法来删除 key 值对应的键值对,或使用 clear() 方法来清空 HashMap
计算大小
可以使用 size() 方法来计算 HashMap 中的元素数量
遍历 HashMap
可使用 for-each 循环来迭代 HashMap 中的元素,如果单纯只想拿到 key 值的话,可以使用 keySet() 方法,然后通过 get(key) 获取对应的 value,如果只想获取 value,便可以使用 values() 方法
import java.util.HashMap;
public class HashMapDemo {
public static void main(String[] args) {
//创建 HashMap 对象 map
HashMap<Integer, String> map = new HashMap<Integer, String>();
//使用 put() 方法添加元素
map.put(1,"A");
map.put(2,"B");
map.put(3,"C");
map.put(4,"D");
System.out.println("map = " + map);
//使用 size() 方法获得 map 中元素数量
int size = map.size();
System.out.println("该 HashMap 中有" + size + "个元素");
//for-each 循环遍历 map
System.out.println("该 HashMap 中的元素为:");
for (Integer i : map.keySet()) {
System.out.println("key: " + i + " value: " + map.get(i));
}
// 返回所有 value 值
System.out.println("该 HashMap 中的 value 值为:");
for(String value: map.values()) {
// 输出每一个value
System.out.print(value + " ");
}
System.out.println();
//删除元素
map.remove(3);
System.out.println("删除键值为3的元素之后,map = " + map);
//清除 HashMap
map.clear();
System.out.println("map已被清空,map = " + map);
}
}

| 方法 | 说明 |
|---|---|
| clear() | 删除 HashMap 中所有的键值对,即清空 HashMap |
| clone() | 复制一份 HashMap |
| isEmpty() | 判断 HashMap 是否为空 |
| size() | 计算 HashMap 中键值对的数量 |
| put() | 为 HashMap 添加键值对 |
| putAll() | 将所有键值对添加到 HashMap 中 |
| putIfAbsent() | 如果 HashMap 中不存在指定的键,则将指定的键值对插入到 HashMap 中 |
| remove() | 删除 HashMap 中指定 key 的映射关系 |
| containsKey() | 检查 HashMap 中是否存在指定的 key 对应的映射关系 |
| containsValue() | 检查 HashMap 中是否存在指定的 value 对应的映射关系 |
| replace() | 替换 HashMap 中指定的 key 对应的 value |
| replaceAll() | 将 HashMap 中的所有映射关系替换成给定的函数所执行的结果 |
| get() | 获取指定 key 对应的 value |
| getOrDefault() | 获取指定 key 对应的 value,如果找不到 key,则返回设置的默认值 |
| forEach() | 对 HashMap 中每个映射执行指定的操作 |
| entrySet() | 返回 HashMap 中所有映射项的集合视图 |
| keySet() | 返回 HashMap 中所有 key 组成的集合视图 |
| values() | 返回 HashMap 中存在的所有的 value 值 |
| merge() | 添加键值到 HashMap 中 |
| compute() | 对 HashMap 中指定 key 的值进行重新计算 |
| computeIfAbsent() | 对 HashMap 中指定 key 的值进行重新计算,如果不存在这个 key 值,则添加到 HashMap 中 |
| computeIfPresent() | 对 HashMap 中指定 key 的值进行重新计算,前提是该 key 值存在于 HashMap 中 |

3125

被折叠的 条评论
为什么被折叠?



