博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编程中定义的方法报异常问题
阅读量:5274 次
发布时间:2019-06-14

本文共 1090 字,大约阅读时间需要 3 分钟。

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

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

你可能感兴趣的文章
自定义返回模型
查看>>
C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端多网络支持
查看>>
HDU 4122
查看>>
Suite3.4.7和Keil u3自带fx2.h、fx2regs.h文件的异同
查看>>
打飞机游戏【来源于Crossin的编程教室 http://chuansong.me/account/crossincode 】
查看>>
[LeetCode] Merge Intervals
查看>>
【翻译自mos文章】当点击完 finishbutton后,dbca 或者dbua hang住
查看>>
Linux编程简介——gcc
查看>>
2019年春季学期第四周作业
查看>>
MVC4.0 利用IActionFilter实现简单的后台操作日志功能
查看>>
rotate the clock
查看>>
bugku 变量
查看>>
数据库01 /Mysql初识以及基本命令操作
查看>>
数据库02 /MySQL基础数据类型以及多表之间建立联系
查看>>
Python并发编程04/多线程
查看>>
CF461B Appleman and Tree
查看>>
CF219D Choosing Capital for Treeland
查看>>
杂七杂八的小笔记本
查看>>
51Nod1353 树
查看>>
CF1215E Marbles
查看>>