文章目录
前言
本文主要介绍Map中常用的方法,对应实现的功能
这里我们先初始化一个map,并设置5个key,对应的value为"val+key“,然后开始我们的方法测试
Map<Integer, String> map = new HashMap<>();
for (int i = 1; i <= 5; i++) {
map.put(i, "val" + i);
}
1、forEach
依次执行元素
map.forEach((k,v)-> System.out.println(k+":"+v));
// 输出结果
1:val1
2:val2
3:val3
4:val4
5:val5
2、containsKey
判断是否存在某个key
map.containsKey(1); // true
map.containsKey(6); // false
3、containsValue
判断是否存在某个value
map.containsValue("val1"); // true
map.containsValue("val6"); // false
4、putIfAbsent
不存在才插入
如果key存在,不做操作,并返回已有值,如果key不存在,插入成功,返回null加粗样式
map.putIfAbsent(1, "new1"); // val1
map.get(1); // val1
map.putIfAbsent(6, "new6"); // null
map.get(6); // new6
5、computeIfAbsent
和putIfAbsent 类似,不存在才插入,只不过是在插入新值时可以使用Function对象进行计算
如果key存在,不做操作,并返回已有值,如果key不存在,插入成功,并返回新值
map.computeIfAbsent(1, num -> "new" + num); // val1
map.get(1); // val1
map.computeIfAbsent(6, num -> "val" + 6); // val6
map.get(6); // val6
6、computeIfPresent
替换已存在key的值,可以使用BiFunction对象进行计算
如果存在,就替换;不存在,不做操作;
map.computeIfPresent(1, (key, val) -> "new1"); // new1
map.get(1); // new1
map.computeIfPresent(6, (key, val) -> "new6"); // null
map.get(6); // null
7、remove
删除一个键值全都匹配的项
map.remove(1,"val2");
map.get(1); // val1
map.remove(1,"val1");
map.get(1); // null
8、getOrDefault
找不到就设默认值
map.getOrDefault(1,"空"); // val1
map.getOrDefault(6,"空"); // 空
9、merge
对元素做合并
如果key不存在则插入,否则对key对应的值做合并操作,并重新插入到map中
map.merge(1, "new1", (value, newValue) -> value.concat(newValue)); // val1new1
map.get(1); // val1new1
map.merge(6, "new6", (value, newValue) -> value.concat(newValue)); // new6
map.get(6); // new6