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<K, V> 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<K, V> synchronizedMap = Collections.synchronizedMap(map);
Map<K, V> unmodifiableMap = Collections.unmodifiableMap(map);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值