首页 > 编程知识 正文

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

时间:2023-05-05 22:04:37 阅读:286730 作者:3090

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));



版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。