java中遍历Map的几种常见方式

java中遍历Map的几种常见方式,如下:

第一种:

通过遍历键取值(效率低)

 Map<String,Object> map = new HashMap();
        map.put("a","1");
        map.put("b","2");
        map.put("c","3");
        for (String str : map.keySet()) {
            System.out.println("key:"+ str + "\tvalue:" + map.get(str));
        }

第二种:

for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式,取键值都可以。并且是在java 1.5引入的,删除指定元素不能使用remove();方法否则会报java.util.ConcurrentModificationException。

      for (Map.Entry<String, Object> entry : map.entrySet()) {
         System.out.println("key:"+  entry.getKey() + "\tvalue:" + entry.getValue());
      }

第三种:

在java1.5之前是常见的一种方式,遍历基本上都是通过迭代器(Iterator)来进行遍历,看似代码比较冗余也有其优点,调用iterator.remove()来删除entries,如果在for-each遍历中使用remove()方法,结果和预期不一样会报java.util.ConcurrentModificationException并发修改异常,该性能和foreach类同。

 Iterator<Map.Entry<String, Object>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<String, Object> next = iterator.next();
            System.out.println("key:"+next.getKey()+"\tvalue:"+next.getValue());
        }

第四种:

直接遍历值,在foreach循环中遍历keys或values。如果只需key或value可以通过KeySet和values来实现遍历而不是用entryset.。代码简介,并且效率要好,代码简洁。

 for (Object o : map.values()) {
            System.out.println("value;"+o);
        }

第五种:

java8遍历的写法,效率更高并行处理。

map.forEach((k,v)-> System.out.println("key:"+k+"\tvalue:"+v));
    原文作者:_William_Cheung
    原文地址: https://blog.csdn.net/qq496013218/article/details/68488963
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞