Map补充:map遍历方法和computeIfAbsent()方法
Posted 南淮北安
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Map补充:map遍历方法和computeIfAbsent()方法相关的知识,希望对你有一定的参考价值。
文章目录
一、Map 的遍历
(1)使用 Iterator 输出 Map 实例
public class Test
public static void main(String[] args)
Map<String,String > map = new HashMap<String, String>();//实例化 map
map.put("2","Java");
map.put("1","Python");
map.put("3","html");
Set<Map.Entry<String ,String >> allSet = null;//声明一个 Set 集合,指定泛型
allSet = map.entrySet();//将 Map 接口实例变为 Set 接口实例
Iterator<Map.Entry<String ,String >> iter = null;//声明 Iterator 对象
iter = allSet.iterator();//实例化 Iterator 对象
while (iter.hasNext())
Map.Entry<String ,String > me = iter.next();//找到 Map.Entry 实例
System.out.println(me.getKey() + "-->" + me.getValue());//输出 key 和 value
(2)借助entrySet进行输出
public class Test
public static void main(String[] args)
Map<String,String > map = new HashMap<String, String>();//实例化 map
map.put("2","Java");
map.put("1","Python");
map.put("3","Html");
for (Map.Entry<String ,String> me:map.entrySet())//输出 Set 集合
System.out.println(me.getKey() + "-->" + me.getValue());
(3)借助foreach
Map<String,String > map = new HashMap<String, String>();//实例化 map
map.put("2","Java");
map.put("1","Python");
map.put("3","Html");
map.forEach((key,value)->
System.out.println(key + " --> "+value);
);
二、map.computeIfAbsent()方法
computeIfAbsent()
方法对 hashMap 中指定 key 的值进行重新计算,如果不存在这个 key,则添加到 hashMap 中。
语法:
hashmap.computeIfAbsent(K key, Function remappingFunction)
如果 key 对应的 value 不存在,则使用获取 remappingFunction 重新计算后的值,并保存为该 key 的 value,否则返回 value。
比如要将二维数组放到map中,其中将首位array[0]
相同的放到一个set里。
public class TestDemo
public static void main(String[] args)
Map<Integer, HashSet<Integer>> map = new HashMap<>();
int[][] arr = 1, 2, 1, 3, 2, 3, 2, 4, 4, 5;
for (int[] array : arr)
//如果存在就取出,不存在则新创建一个 set
HashSet<Integer> set = map.getOrDefault(array[0], new HashSet<>());
set.add(array[1]);
//元素添加之后再放入
map.put(array[0], set);
map.forEach((key, value) ->
System.out.println(key + " --> " + value);
);
此时使用computeIfAbsent
for (int[] array : arr)
map.computeIfAbsent(array[0], key -> new HashSet<>()).add(array[1]);
以上是关于Map补充:map遍历方法和computeIfAbsent()方法的主要内容,如果未能解决你的问题,请参考以下文章
Go-常识补充-切片-map(类似字典)-字符串-指针-结构体
Groovymap 集合 ( map 集合遍历 | 使用 map 集合的 each 方法遍历 map 集合 | 代码示例 )
Groovymap 集合 ( map 集合遍历 | 使用 map 集合的 find 方法遍历 map 集合 | 代码示例 )