遍历Java中的Map

今早遇到了轮询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);
 

猜你喜欢

转载自blog.csdn.net/weixin_44494373/article/details/109923945
今日推荐