二,Map集合(实际是一个接口)
Map 集合介绍
在 Java 中,Map 是一种存储键值对的集合,它允许你通过键快速查找对应的值。Map 接口有两个主要的实现类:HashMap 和 TreeMap。这些类提供了不同的性能特点和排序特性。
Map 集合的特点
- 键的唯一性:在同一个
Map集合中,键是唯一的。 - 值的重复性:在同一个
Map集合中,值可以发生重复。 - 键值对:一对键值表示
Map集合中的一个元素。
方法详解
V put(K key, V value):向Map中添加或更新键值对。V remove(Object key):根据键从Map中移除键值对,并返回被移除的值。void clear():清空Map中的所有键值对。boolean containsKey(Object key):检查Map是否包含指定的键。boolean containsValue(Object value):检查Map是否包含指定的值。boolean isEmpty():检查Map是否为空。int size():获取Map中键值对的数量。V get(Object key):根据键从Map中获取值。Set<K> keySet():获取Map中所有键的集合。Collection<V> values():获取Map中所有值的集合。Set<Map.Entry<K,V>> entrySet():获取Map中所有键值对的集合。
Map 集合中键的唯一性
在 Map 集合中,键的唯一性是通过键的 hashCode() 方法和 equals() 方法来保证的。如果两个键的哈希值相同,并且 equals() 方法返回 true,则这两个键被认为是相同的,Map 将不会添加重复的键。
若想要使用 Map 集合存储自定义对象作为键,需要元素类型本身重写 hashCode 方法和 equals 方法。
Map 集合的实现类
HashMap 类
- 底层数据结构:哈希表
- 特点:查找速度快,键唯一,值可以重复,线程不安全,效率高。
- 使用场景:适用于需要快速查找的场景。
TreeMap 类
- 底层数据结构:红黑树(自平衡二叉树)
- 特点:键值对有序,键唯一,值可以重复,线程不安全,效率相对较低。
- 使用场景:适用于需要有序集合的场景。
示例代码
import java.util.HashMap;
import java.util.Map;
public class MapExample {
public static void main(String[] args) {
Map<String, Integer> map = new HashMap<>();
// 向 Map 中添加元素
map.put("Alice", 25);
map.put("Bob", 30);
map.put("Charlie", 35);
// 根据键获取值
Integer age = map.get("Bob");
System.out.println("Bob's age: " + age);
// 检查 Map 是否包含某个键
boolean containsKey = map.containsKey("Alice");
System.out.println("Contains Alice: " + containsKey);
// 检查 Map 是否包含某个值
boolean containsValue = map.containsValue(30);
System.out.println("Contains age 30: " + containsValue);
// 移除元素
map.remove("Charlie");
// 清空 Map
map.clear();
// 检查 Map 是否为空
boolean isEmpty = map.isEmpty();
System.out.println("Is map empty: " + isEmpty);
// 获取 Map 的大小
int size = map.size();
System.out.println("Map size: " + size);
}
}
总结
Map 接口及其实现类提供了键值对的存储和管理功能。HashMap 适合于需要快速查找的场景,而 TreeMap 适合于需要有序集合的场景。通过理解 Map 接口及其实现类的特点和使用方法,可以更有效地进行数据存储和管理。

浙公网安备 33010602011771号