概念:
数据结构映射(Map)是Java中的一种键值对存储结构,用于存储具有唯一键和对应值的元素集合。每个键都是唯一的,可以通过键来访问、修改或删除对应的值。
特点:
- 键唯一性:每个键在映射中是唯一的,不允许重复。
- 无序性:在不进行排序操作时,映射中的元素没有固定顺序。
- 动态大小:映射可以动态增长或缩小,并且支持添加、删除和修改操作。
优点:
- 快速查找:使用哈希表实现(如HashMap),在平均情况下具有较快的查找速度。
- 方便根据键获取对应值:通过指定一个键即可获取其对应的值。
缺点:
- 不保证顺序稳定性:如果需要按照特定顺序遍历或获取最大/最小值等需求,则需要转换为其他数据结构再进行排序处理。
适用场景:
- 数据关联性强:需要将某些数据与相应标识符关联起来并进行高效地检索和更新时使用。
- 键值查询:需要根据键快速查找对应值的情况。
常用操作示例代码:
以HashMap为例:
1、创建map对象:
Map<String, Integer> map = new HashMap<>();
2、添加元素:
map.put("Apple", 10);
map.put("Banana", 20);
map.put("Orange", 15);
System.out.println(map); // 输出: {Apple=10, Banana=20, Orange=15}
3、删除指定键及其对应的值
map.remove("Banana");
System.out.println(map); // 输出: {Apple=10, Orange=15}
4、判断是否包含某个特定键
if (map.containsKey("Orange")) {
System.out.println("The Map contains Orange.");
} else {
System.out.println("The Map does not contain Orange.");
}
5、获取映射大小
System.out.println("Size of the Map: " + map.size());
6、遍历所有键值对
for (Map.Entry<String, Integer> entry : map.entrySet()){
String key = entry.getKey();
Integer value = entry.getValue();
System.out.println(key + ": " + value);
}
7、获取指定键对应的值
int value = map.get("Apple");
System.out.println(value); // 输出: 10
8、修改指定键对应的值
map.put("Orange", 20);
System.out.println(map); // 输出: {Apple=10, Orange=20}