Java8 foreach
来源:互联网 发布:伊迪芬奇的秘密知乎 编辑:程序博客网 时间:2024/06/06 18:56
7.【强制】不要在foreach循环里进行元素的remove/add操作。remove元素请使用Iterator方式,如果并发操作,需要对Iterator对象加锁。
正例:
Iterator<String> it = a.iterator();while (it.hasNext()) { String temp = it.next(); if (删除元素的条件) { it.remove(); }}
反例:
List<String> a = new ArrayList<String>();a.add("1");a.add("2");for (String temp : a) { if ("1".equals(temp)) { a.remove(temp); }}
说明:以上代码的执行结果肯定会出乎大家的意料,那么试一下把“1”换成“2”,会是同样的结果吗?
首先查看为“1”时的结果:
[2]
将“1”修改为“2”的结果:
Exception in thread "main" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901) at java.util.ArrayList$Itr.next(ArrayList.java:851) at com.htouhui.sms.yrzt.Main.main(Main.java:16)
阅读全文
0 0
- Java8 foreach
- Java8:forEach
- ForEach Method in Java8
- java8 forEach Map List
- Java8 foreach方法
- java8 forEach案例
- java8中ForEach Method
- java8中ForEach Method
- java8 stream().forEach 效率
- Java8 Foreach操作
- java8中的foreach
- Java8中的forEach方法详解
- Java8 Stream forEach()函数的效率问题
- java8 stream.map和stream.forEach
- java8提供的新遍历java.lang.Iterable.forEach
- 在Java8的foreach()中使用return/break/continue
- Java8 新特性之集合: forEach(Consumer<? super T> action)
- Java8 编程规范入门之【forEach方法遍历集合】
- Lintcode LinkedList 174 Remove Nth Node From End of List
- java base64编码的三种方式
- 基于Xposed的一款脱壳神器ZjDroid工具原理解析
- Android 图片人脸识别剪切
- 写一个简单的scala的hello world出现的问题
- Java8 foreach
- Android Action Bar动态改变标题
- Plug-in 首选项
- eclipse c/c++ ubuntu16.04安装
- cocos js 热更新--版本号方法
- spring-cloud logback日志初始化问题
- Java 加密 base64 encode
- 有用的学习网站
- java对象序列化、gzip压缩解压缩、加密解密