1. 什么是Map集合?
Map是一种键值对(key-value)的数据结构,就像字典一样:
- 键(Key):相当于单词,用来查找
- 值(Value):相当于单词的解释
- 一个键对应一个值,通过键可以找到对应的值
2. Map的常见实现类
// HashMap - 最常用,无序存储
Map<String,Integer> map = new HashMap<>();
// LinkedHashMap - 按插入顺序存储
Map<String,Integer> map1 = new LinkedHashMap<>();
// TreeMap - 自动按键排序存储
Map<String,Integer> map2 = new TreeMap<>();
3. Map的基本操作方法

image.png
3.1 添加和更新数据
// put(key, value) - 添加或更新键值对
map.put("张飞", 100); // 添加张飞,血量100
map.put("小乔", 80); // 更新小乔的血量为80
3.2 查询数据
// get(key) - 根据键获取值
Integer zhangFeiHp = map.get("张飞");
// getOrDefault(key, defaultValue) - 获取值,不存在返回默认值
Integer notExist = map.getOrDefault("诸葛亮", 0);
3.3 检查数据
// containsKey(key) - 判断是否包含指定键
boolean hasGuanYu = map.containsKey("关羽");
// containsValue(value) - 判断是否包含指定值
boolean hasHp100 = map.containsValue(100);
3.4 获取集合信息
// size() - 获取键值对数量
int count = map.size();
// isEmpty() - 判断是否为空
boolean isEmpty = map.isEmpty();
3.5 条件性操作
// putIfAbsent(key, value) - 键不存在时才添加
map.putIfAbsent("赵云", 95);
// replace(key, newValue) - 替换指定键的值
map.replace("张飞", 120);
3.6 删除数据
// remove(key) - 根据键删除键值对
Integer removedValue = map.remove("刘备");
4. 遍历Map集合的几种方式
4.1 方法一:遍历所有键
// 获取所有键的集合
Set<String> names = map.keySet();
for (String name : names) {
System.out.println(name + " : " + map.get(name));
}
4.2 方法二:遍历所有值
// 获取所有值的集合
Collection<Integer> hps = map.values();
for (Integer hp : hps) {
System.out.println("血量: " + hp);
}
4.3 方法三:遍历键值对
// 获取所有键值对的集合
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
4.4 方法四:使用Lambda表达式
// 更简洁的遍历方式
map.forEach((name, hp) -> System.out.println(name + " 的血量是 " + hp));
5. 重要概念总结
-
keySet():返回所有键组成的
Set集合 -
values():返回所有值组成的
Collection集合 -
entrySet():返回所有键值对组成的
Set集合 - Entry:表示一个键值对的对象
6. 实际应用场景
Map集合常用于:
- 学生成绩管理(学号→成绩)
- 商品价格查询(商品名→价格)
- 用户信息存储(用户名→用户对象)
- 缓存数据(键→值)