黑马程序员技术交流社区
标题:
ConcurrentModificationException两种解决方案,亲测总结.
[打印本页]
作者:
㏒假™面具
时间:
2015-3-13 23:25
标题:
ConcurrentModificationException两种解决方案,亲测总结.
* 并发修改异常的演示
* 出现原因: 当方法检测到对象的并发修改时,但不允许这种修改时,抛出磁异常
* 迭代器是依赖于集合存在的,在迭代过程中,如果集合中添加了元素,而迭代器不知道,就会抛出该异常
* 解决方案: 1 for循环 在结尾处添加元素,本次遍历可以遍历到新添加元素
* 2.ListIterator 中的add(E e) 方法,在标记的下一位置添加元素,本次迭代,迭代不到新添元素。
*/
package list;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
/**
* @author 面具
*
*/
public class ListDemo {
public static void main(String[] args) {
// 创建集合
List list = new ArrayList();
// 添加元素
list.add("abc1");
list.add("abc3");
list.add(1,"abc2");
// 迭代集合集合打印
for (ListIterator iterator = list.listIterator(); iterator.hasNext();) {
String s = (String) iterator.next();
System.out.println(s);
if(s.equals("abc1")){
iterator.add("桂纶镁");
}
}
System.out.println("---------------------华丽的分割线----------");
// for循环遍历
for(int i = 0 ; i<list.size(); i++){
String s = (String)list.get(i);
System.out.println(s);
if(s.equals("abc2")){
list.add("高圆圆");
}
}
}
}
复制代码
并发修改异常.png
(2.6 KB, 下载次数: 63)
下载附件
2015-3-13 23:24 上传
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2