Map集合学习笔记

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集合常用于:

  • 学生成绩管理(学号→成绩)
  • 商品价格查询(商品名→价格)
  • 用户信息存储(用户名→用户对象)
  • 缓存数据(键→值)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容