map的三种遍历方式
来源:互联网 发布:asp.net与php 编辑:程序博客网 时间:2024/06/06 03:03
map的三种遍历方式
Map<String, String>map = new HashMap<>(); map.put("a","aa"); map.put("b","bb"); map.put("c","cc"); map.put("d","dd"); //第一种 for (String key: map.keySet()){ System.out.println("key: "+ key+" value: "+ map.get(key)); } //第二种 Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator(); while (iterator.hasNext()){ String key = iterator.next().getKey(); // map.remove(key); 会抛出ConcurrentModificationException异常 //但是如果使用iterator.remove()方法就不会报错 System.out.println("key: "+ key+" value: "+ map.get(key)); } //第三种 for (Map.Entry<String, String>entry: map.entrySet()){ String key = entry.getKey(); // map.remove(key); 会抛出ConcurrentModificationException异常 System.out.println("key: "+ key+" value: "+ map.get(key)); }
但是对于collection
类遍历企图修改或者是删除某个元素的时候,会报ConcurrentModificationException
的错误,无论是使用iterator还是使用map.entrySet方式:
java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextNode(HashMap.java:1437) at java.util.HashMap$EntryIterator.next(HashMap.java:1471) at java.util.HashMap$EntryIterator.next(HashMap.java:1469) at com.sxz.zxd.java.StringTest.mapTest(StringTest.java:52) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
即java集合(Collection)中采用fail-fast机制。当某一个线程A通过iterator去遍历某集合C的过程中,若该集合的内容被其他线程所改变了,当线程A继续访问集合C时,抛出ConcurrentModificationException异常,出现fail-fast这种情况
阅读全文
0 0
- 遍历Map的三种方式:
- 遍历Map的三种方式
- 遍历Map的三种方式
- Java Map 的三种遍历方式
- JAVA Map 的三种遍历方式
- JAVA Map 的三种遍历方式
- JAVA Map的三种遍历方式
- 遍历Map的三种方式
- Map集合的三种遍历方式
- map集合,遍历的三种方式
- [javase]遍历Map的三种方式
- Map集合遍历的三种方式
- 遍历map的三种方式
- Java 遍历map 的三种方式
- Map的三种遍历方式
- Map集合遍历的三种方式
- map的三种遍历方式
- map的三种遍历方式
- IP地址,同一网段,子网掩码,默认网关,添加路由
- Centos7解除自动锁屏及修改主机名
- 运维老鸟教你安装centos6.5如何选择安装包
- robot framework 对使用增删改查对数据库进行操作
- log4j.properties (log4j日志基本配置)
- map的三种遍历方式
- ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 A. Visiting Peking University
- 阶段整合---hibernate与spring整合
- 复数四则运算-操作符重载
- javascript使用闭包实现AOP
- 从此再无风城玫瑰
- norm(范数)、bsxfun()用法
- ubuntu ROS -- activate turtlesim window and control it with keyboard
- 顺序表实现的注意点