跳转至

Map集合

定义

Map是Java中用于存储键值对(key-value)映射关系的集合接口,它不允许重复的键,但允许重复的值。

作用

Map集合在实际开发中具有以下重要价值:

  1. 键值映射:提供键到值的映射关系,便于快速查找
  2. 去重存储:自动处理重复键,保证键的唯一性
  3. 高效查询:基于哈希表实现,提供O(1)的查询性能
  4. 灵活存储:支持null键值,适应各种业务场景
  5. 丰富实现:提供多种实现类满足不同需求

图解说明

例子

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