java Map
时间: 2025-05-05 20:54:19 浏览: 15
### Java 中 Map 接口的概述
`Map` 是 Java 集合框架中的一个重要接口,用于存储键值对 (key-value pairs),其中每个键映射到一个特定的值。它不允许重复的键,但如果两个不同的键映射到了相同的值,则不会引发任何异常[^1]。
以下是 `Map` 的一些核心方法及其功能:
#### 基本操作方法
- **put(K key, V value)**: 将指定的键和值插入到地图中。如果该键已经存在,则替换其对应的旧值并返回旧值。
- **get(Object key)**: 返回与指定键关联的值;如果没有找到对应键则返回 null。
- **remove(Object key)**: 移除由指定键所映射的条目,并返回被移除的值。
- **containsKey(Object key)** 和 **containsValue(Object value)**: 分别用来判断是否存在某个给定的键或者值。
- **size()**: 获取当前 map 中包含多少个键值对。
- **isEmpty()**: 判断此 map 是否为空。
#### 迭代器支持的方法
- **entrySet()**: 返回一个 Set 视图,表示这个 map 所有的键值对集合。
- **keySet()**: 提供了一个只读视图形式下的所有 keys 组成的一个 set 结构。
- **values()**: 得到所有的 values 形成的一个 collection 对象。
下面是一个简单的例子展示如何使用这些基本的功能:
```java
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
// 创建 HashMap 实现类实例化对象 m
Map<String, Integer> m = new HashMap<>();
// 添加元素至map中
m.put("Alice", 20);
m.put("Bob", 25);
System.out.println(m.get("Alice")); // 输出 Alice 年龄
// 删除 Bob 记录
m.remove("Bob");
// 检查是否含有某个人名作为 Key 存在于表里
boolean hasCharlie = m.containsKey("Charlie");
// 显示整个哈希表的内容
for(Map.Entry<String,Integer> entry : m.entrySet()){
String name = entry.getKey();
int age = entry.getValue();
System.out.printf("%s=%d\n",name ,age );
}
}
}
```
上述代码片段展示了创建、填充以及访问 `HashMap` 数据结构的过程。
另外需要注意的是,在实际开发过程中可能会遇到更复杂的需求场景比如双向绑定的数据同步更新等问题时可以考虑引入第三方库如 MapStruct 来简化工作流程。
最后提醒一点关于泛型参数定义方面最好遵循 PECS(Producer Extends Consumer Super)原则来决定何时应该采用 <? extends T>,<? super T>.
阅读全文
相关推荐














