java 遍历Map 的五种方法

遍历Map的方法, 我总结了5种, CoreJava中给出的是第一种使用forEach+lambda表达式, 我认为这种方法应该是最好的, 但是只能在Java8之后的版本使用;

建议优先使用第一种和第四种(类似第二种);

遍历Map:

第一种可以使用Map的forEach方法加上Java8的lambda表达式:

《java 遍历Map 的五种方法》

 

第二种可以使用Map.Entry来遍历Map的条目:

《java 遍历Map 的五种方法》

 

第三种可以使用for结合Map的keySet和values方法来遍历:

《java 遍历Map 的五种方法》

 

第四种是使用迭代器, 这种是看起来比较熟悉而且效率挺高的, 但是要注意, 不能在使用for循环访问迭代器的同时使用remove操作, javadoc说这样会发生不可预期的错误, 如果希望迭代的同时删除元素, 可以使用while来遍历:

《java 遍历Map 的五种方法》

 

当然还有第五种是在遍历keySet的时候调用get方法获取对应的值, 但是这种方法太捞了, 效率很低, 不提了, 就上一段测试代码吧:

《java 遍历Map 的五种方法》

 

测试代码如下:

《java 遍历Map 的五种方法》

 

输出如下:

《java 遍历Map 的五种方法》

 

贴一些map和sortedmap的常用方法:

《java 遍历Map 的五种方法》

 

《java 遍历Map 的五种方法》

/**
 * lejun.chen
 */
package com.chen.Controller;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;

/**
 * @author lejun.chen
 * @Time SystemTime
 */
public class mapTest {

    
    public static void main(String[] args) {
        Map<String,String> map=new HashMap<>();
        map.put(“国家”, “中国”);
        map.put(“魔都”, “上海”);
        map.put(“寒冷”, “北极”);
        map.put(“美女”, “成都”);
        map.put(“发展”, “武汉”);
        map.put(“美女多的”, “重庆”);
        
        //JAVA8
         System.out.println(“<——1—————————————–>”);
        /*map.forEach((K,V){
            System.out.println(K+”——–“+V);
         });
        */
          System.out.println(“<——2—————————————–>”);
        //1.老方法
        for (String a : map.keySet()) {
            System.out.println(a);
        }
        for (String b : map.values()) {
            System.out.println(b);
        }
     System.out.println(“<——3—————————————–>”);
        //第二种使用Map.Entry来遍历Map的条目
    for (Map.Entry<String, String> it :map.entrySet()) {
        System.out.println(it.getKey()+”—–“+it.getValue());
    }
    System.out.println(“<—-4——————————————->”);
        //迭代器遍历
    for (Iterator<Map.Entry<String, String>> it=map.entrySet().iterator();it.hasNext();) {
        Map.Entry<String, String> itt=it.next();
        System.out.println(itt.getKey()+”——-“+itt.getValue());
    }
    System.out.println(“<—-5——————————————->”);
     for (String a:map.keySet()) {
        System.out.println(a+”——“+map.get(a));
         
         
    }
    }
    
}
 

    原文作者:陈_小哥哥
    原文地址: https://blog.csdn.net/chen213wb/article/details/84205217
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞