今早遇到了轮询map中的元素,加入到list中的需求
相关材料:
Java集合类图解(全面,舒适)https://blog.csdn.net/weixin_44494373/article/details/105898218
如何遍历Map
一、利用Map内部的entrySet,Set集合进行foreach
Map中的每个节点都是一个Entry对象,同时map提供了转化为Set(或者说获取内部的Set)的方法entrySet()
利用这个方法,我们能获取一个Set集合,该集合是Collection的子类或者说实现类,可以跟List互通,可以拥有遍历。
自然,我们就能foreach了
同时由于上面的步骤为引用传参,所以在这里修改内部的值,是有效的
Map<Integer, Integer> map = new HashMap<>();
Set<Map.Entry<Integer, Integer>> set = map.entrySet();
for (Map.Entry<Integer, Integer> entry: set) {
System.out.println(entry.getKey());
System.out.println(entry.getValue());
//由于上面的步骤为引用传参,所以在这里修改内部的值,是有效的
entry.setValue(2);
}
二、利用Iterator
原理与方法一相同,注意到我们获取的是一个Set集合,很自然我们可以命令该Set生成一个迭代器
Iterator<Map.Entry<Integer, Integer>> iterator = map.entrySet().iterator();
三、直接遍历keySet或ValueSet
需要说明的是,如果不需要key和value同时出现,最好使用改方法,因为他效率更高
Map<Integer, Integer> map = new HashMap<Integer, Integer>();
//遍历map中的键
for (Integer key : map.keySet()) {
System.out.println("Key = " + key);
}
//遍历map中的值
for (Integer value : map.values()) {
System.out.println("Value = " + value);