Java集合——map

在Java中,Map 是一个用于存储键值对(key-value pairs)的集合,不允许重复的键,每个键映射到一个值。Map 接口有几个常用的实现类。以下是 Map 接口的主要知识点:

1. 主要方法

  • put(K key, V value):将指定的键 key 和值 value 添加到映射中。如果键已存在,更新其对应的值。
  • get(Object key):返回指定键 key 对应的值。
  • remove(Object key):移除指定键 key 和其对应的值。
  • containsKey(Object key):检查映射中是否包含指定的键 key
  • containsValue(Object value):检查映射中是否包含指定的值 value
  • keySet():返回映射中所有键的集合。
  • values():返回映射中所有值的集合。
  • entrySet():返回映射中所有键值对的集合。
  • size():返回映射中键值对的数量。
  • clear():移除映射中的所有键值对。

2. 常见实现类

  • HashMap:基于哈希表实现,键值对的顺序不确定,提供常数时间的操作性能。

    • 特点:不保证顺序,性能较高。
    • 线程安全HashMap 不是线程安全的,若需线程安全的 Map,可以使用 Collections.synchronizedMap
  • LinkedHashMap:基于哈希表和链表实现,保持键值对的插入顺序。

    • 特点:保持插入顺序,性能介于 HashMapTreeMap 之间。
  • TreeMap:基于红黑树实现,键按自然顺序或构造时指定的比较器顺序排列。

    • 特点:键有序,提供对键的排序。
    • 线程安全:同样不是线程安全的。

3.遍历map

使用 entrySet() 和迭代器

for (Map.Entry entry : map.entrySet()) {
    K key = entry.getKey();
    V value = entry.getValue();
    // 处理键值对
}

使用增强的for循环

for (K key : map.keySet()) {
    V value = map.get(key);
    // 处理键值对
}

4.实用工具

Collections:提供了将 Map 包装成线程安全或只读的版本。

Map synchronizedMap = Collections.synchronizedMap(map);
Map unmodifiableMap = Collections.unmodifiableMap(map);

你可能感兴趣的:(Java集合,java,开发语言)