下面是一个“关于集合的迭代删除问题”

public class  TestIterator{

public static void main(String[] args) {

List<String> aList = new ArrayList<String>();
                aList.add("aaa");
                aList.add("bbb");
                aList.add("asdf");
                aList.add("jvaa");
                aList.add("aaaa");
                aList.add("itcast");

System.out.println(aList);
                delElements1(aList);
                delElements2(aList);
                delElements3(aList);
                System.out.println(aList);
        }

public static void delElements1(List<String> aList) {
                for (String str : aList) {
                        if (str.equals("aaa")) {
                                aList.remove(str);
                        }
                }
        }

public static void delElements2(List<String> aList){
                Iterator<String> it = aList.iterator();
                 while(it.hasNext()){
                        String str = it.next();
                        if(str.equals("aaa")){
                                aList.remove(str);
                        }
                 }
        }
       
        public static void delElements3(List<String> aList){
                        Iterator<String> it = aList.iterator();
                         while(it.hasNext()){
                        String str = it.next();
                        if(str.equals("aaa")){
                                it.remove();
                        }
                 }
        }
}
以上代码中delElements1,delElements2都会报异常:Exception in thread "main" java.util.ConcurrentModificationException,而delElements3则不会报异常,请问这是为什么呢?

答案由读者来回答。 方便 你们来思考。

转载于:https://www.cnblogs.com/long892230/archive/2012/07/19/2669527.html

编程中定义的方法报异常问题相关推荐

  1. controller中执行main方法报错NoClassDefFoundError: javax/servlet/http/HttpServletResponse

    controller中执行main方法报了这个错:NoClassDefFoundError: javax/servlet/http/HttpServletResponse,如下图: NoClassDe ...

  2. JDK8中Collectors.toMap方法报Duplicate key xxx错误信息

    两种 list转map方式 方式一:这种方式 重复key的话会报错 Duplicate key xxx Map deviceDtoMap = JsonUtils.toList(deviceDtoLis ...

  3. Cocos2d-x编程中的runOnUiThread方法和runOnGLThread方法剖析

    本文对于runOnGLThread方法的分析主要目的是为了帮助我的课程"拇指接龙游戏"学员更好地理解EasyNDK这个开源框架的使用.借助于这个框架,实现Android JAVA端 ...

  4. JDK8中Collectors.toMap方法报Duplicate key xxx错误信息

    今天在使用JDK8中的Collectors.toMap()方法报错,错误信息是Duplicate key xxx,很明显是因为key重复造成的,此时通过使用Collectors.toMap()的重载方 ...

  5. python中使用ZADD方法报错AttributeError: 'int' object has no attribute 'items'

    redis的版本关系 正确的完整实例如下: import pymongo import redis# 代码作用是mongodb的数据传送到redis中去 handler = pymongo.Mongo ...

  6. 深入分析网络编程中踩过的坑

    网络编程中经常会遇到一些异常的情况,定位问题需要了解协议栈的实现,以下是工作中遇到的一些常见问题的深入分析和解决思路. 问题1:server端业务进程响应心跳超时被监控进程kill,导致数据或者逻辑异 ...

  7. c语言const常量用法,C++ const常量在多文件编程中的3种用法

    <C++多文件编程是什么>一节提到,多文件编程中代码的划分原则是:将变量.函数或者类的声明部分存放在 .h 文件,对应的实现部分放在 .cpp 文件中.值得一提得是,此规律适用于大部分场景 ...

  8. java method field_java_解析Java中的Field类和Method类,Field类 Field类中定义了一些方 - phpStudy...

    解析Java中的Field类和Method类 Field类Field类中定义了一些方法,可以用来查询字段的类型以及设置或读取字段的值.将这些方法与继承而来的member方法结合在一起.就可以使我们能够 ...

  9. java编程中的异常分析及面向对象的思考总结[图]

    java编程中的异常分析及面向对象的思考总结[图] 1.异常: 程序中出现的不正常现象. 2.异常的由来: 程序在运行的过程中出现了不正常的情况,程序把它看成对象提取了属性行为(名字,原因,位置等信息 ...

最新文章

  1. 刘铁岩:如何四两拨千斤,高效地预训练NLP模型?
  2. 视图插入数据_带切片器的数据透视图
  3. Linux硬链接 软链接
  4. springMVC 前后台日期格式传值解决方式之一(共二) @DateTimeFormat的使用和配置...
  5. php去掉内部空格_php中去掉头尾空格3种方法
  6. hello.cpp 第一个C++程序(本博客没有特指都是以QT测试)
  7. MPC实现自动驾驶轨迹跟踪
  8. 基于OpenCV的计算机视觉入门(1)图片操作入门
  9. 编译原理(第3版)习题精选与解析(第三章部分解析)
  10. cad2004教程_CAD卸载教程
  11. 坦克采样器加钢琴鼓组弦乐打击音源-IK Multimedia SampleTank 4 v4.1.4 + Library
  12. Sqlmap命令讲解
  13. java毕设答辩准备
  14. php比较asc,php小技巧之过滤ascii控制字符
  15. macOS开启高性能模式
  16. logo制作软件 Ai怎么设计创意LOGO
  17. ECCV2018论文,以及相关比赛地址
  18. 气候变化对深圳的影响
  19. Mybatis缓存机制(一级缓存、二级缓存、三级缓存)
  20. Python3自然语言处理(3)——WordNet

热门文章

  1. 两个list关联合并_算法分享---两个有序链表的合并(C语言)
  2. xp框架下载官方_斐讯路由器系列「K1-K2-K2P-K2T」-Breed刷入工具v1.1支持XP系统
  3. 单刹车信号不合理故障_关于汽车制动系统有哪些故障?该如何解决?
  4. python列表元素零的移动_python列表多行
  5. BZOJ-1005-明明的烦恼
  6. 【GDKOI2004】使命的召唤
  7. c++ list容器获取第n给元素_深入Python(17)-List 的 append 和 pop
  8. java 整数加减_Java计算长整数加减(字符串表示)
  9. 山东青岛职称计算机报名时间2015,青岛市2015年第二次职称计算机考试时间
  10. html背景自动换,html页面换皮肤颜色、背景图片(更换页面背景,常驻缓存)刷新保存...