Map集合
定义
Map是Java中用于存储键值对(key-value)映射关系的集合接口,它不允许重复的键,但允许重复的值。
作用
Map集合在实际开发中具有以下重要价值:
- 键值映射:提供键到值的映射关系,便于快速查找
- 去重存储:自动处理重复键,保证键的唯一性
- 高效查询:基于哈希表实现,提供O(1)的查询性能
- 灵活存储:支持null键值,适应各种业务场景
- 丰富实现:提供多种实现类满足不同需求
图解说明
例子
import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
public class MapDemo {
public static void main(String[] args) {
// HashMap示例
Map<String, Integer> hashMap = new HashMap<>();
hashMap.put("Alice", 25);
hashMap.put("Bob", 30);
hashMap.put("Charlie", 28);
System.out.println("HashMap:");
System.out.println("Alice的年龄: " + hashMap.get("Alice"));
// 遍历方式1: entrySet
System.out.println("遍历方式1:");
for(Map.Entry<String, Integer> entry : hashMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
// 遍历方式2: keySet
System.out.println("遍历方式2:");
for(String key : hashMap.keySet()) {
System.out.println(key + ": " + hashMap.get(key));
}
// TreeMap示例(自动排序)
Map<String, Integer> treeMap = new TreeMap<>(hashMap);
System.out.println("TreeMap(自动排序):");
treeMap.forEach((k, v) -> System.out.println(k + ": " + v));
// 常用方法
System.out.println("包含Bob吗? " + hashMap.containsKey("Bob"));
System.out.println("删除Charlie: " + hashMap.remove("Charlie"));
System.out.println("当前大小: " + hashMap.size());
}
}
执行结果
HashMap:
Alice的年龄: 25
遍历方式1:
Bob: 30
Alice: 25
Charlie: 28
遍历方式2:
Bob: 30
Alice: 25
Charlie: 28
TreeMap(自动排序):
Alice: 25
Bob: 30
Charlie: 28
包含Bob吗? true
删除Charlie: 28
当前大小: 2