文章目录
前言:
map是一种映射,是常用的STL容器。(map可以将任何基本类型(包括STL容器)映射到任何基本类型(包括STL容器))如需使用,需要加一个map头文件。
一、Map常见使用
put ():添加元素
Map<String, Integer> map = new HashMap<>();
System.out.println(map.put("啤酒", 15));
map.put("饮料", 10);
map.put("矿泉水", 8);
map.put("花生", 20);
map.put("瓜子", 20);
map.put("八宝粥", 50);
// 打印map的内容
System.out.println("map的内容:" + map);
输出结果:
null
map的内容:{啤酒=15, 饮料=10, 矿泉水=8, 瓜子=20, 花生=20, 八宝粥=50}
size():获取集合大小
Map<String, Integer> map = new HashMap<>();
System.out.println(map.put("啤酒", 15));
map.put("饮料", 10);
map.put("矿泉水", 8);
map.put("花生", 20);
map.put("瓜子", 20);
map.put("八宝粥", 50);
// 打印map集合的大小
System.out.println("map集合的大小:" + map.size());
输出结果:
map集合的大小:6
clear():清空集合
Map<String, Integer> map = new HashMap<>();
map.put("啤酒", 15);
map.put("饮料", 10);
map.put("矿泉水", 8);
map.put("花生", 20);
map.put("瓜子", 20);
map.put("八宝粥", 50);
// 打印map的内容
System.out.println("map的内容:" + map);
map.clear();
System.out.println("清空map的内容后:" + map);
输出结果:
map的内容:{啤酒=15, 饮料=10, 矿泉水=8, 瓜子=20, 花生=20, 八宝粥=50}
清空map的内容后:{}
isEmpty():判断集合是否为空
Map<String, Integer> map = new HashMap<>();
map.put("啤酒", 15);
map.put("饮料", 10);
map.put("矿泉水", 8);
map.put("花生", 20);
map.put("瓜子", 20);
map.put("八宝粥", 50);
System.out.println("存入数据后,map是否为空:" + map.isEmpty());
map.clear();
System.out.println("清空map的内容后,map是否为空:" + map.isEmpty());
输出结果:
存入数据后,map是否为空:false
清空map的内容后,map是否为空:true
get(Object key):根据键获取对应的值
Map<String, Integer> map = new HashMap<>();
System.out.println(map.put("啤酒", 15));
map.put("饮料", 10);
map.put("矿泉水", 8);
map.put("花生", 20);
map.put("瓜子", 20);
map.put("八宝粥", 50);
// 根据键获取对应的值
System.out.println("获取”啤酒“的值:" + map.get("啤酒"));
System.out.println("获取”瓜子“的值:" + map.get("瓜子"));
输出结果:
获取”啤酒“的值:15
获取”瓜子“的值:20
Collection values():获取Map集合的全部值
Map<String, Integer> map = new HashMap<>();
System.out.println(map.put("啤酒", 15));
map.put("饮料", 10);
map.put("矿泉水", 8);
map.put("花生", 20);
map.put("瓜子", 20);
map.put("八宝粥", 50);
// 获取map的全部键
Collection<Integer> set = map.values();
System.out.println("map的全部值:" + set);
输出结果:
map的全部值:[15, 10, 8, 20, 20, 50]
二、循环遍历的五种方式
首先创建一个Map集合
Map<String, Integer> map = new HashMap<>();
map.put("name", "jack");
map.put("age", "18");
map.put("sex", "男");
1.使用for-each 遍历
for (Map.Entry<String, Integer> entry : map.entrySet()) {
System.out.println("Key = " + entry.getKey() +
", Value = " + entry.getValue());
}
2.使用Iterator(迭代器)遍历
Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, Integer> entry = iterator.next();
System.out.println("Key = " + entry.getKey() +
", Value = " + entry.getValue());
}
3.使用keySet() 遍历
for (String key : map.keySet()) {
System.out.println("key= "+key+" and value= "+map.get(key));
}
4.使用Lambda 表达式遍历
map.forEach((key, value) -> System.out.println("Key = " + key + ", Value = " + value));
5.使用 Stream API 遍历
map.entrySet().stream().forEach(entry ->
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()));
这些遍历方式都有各自的适用场景和优劣势,根据实际需求选择最合适的方式可以提高代码的效率和可读性。