使用增强for循环遍历集合的时候操作集合的问题?
2014-05-09 13:55
375 查看
// 遍历一个list public static void printList(List<String> list){ for (String string : list) { list.add("eeee"); // 运行错误 System.out.println(string); } System.out.println("遍历中: "+list); } 异常信息如下: Exception in thread "main" java.util.ConcurrentModificationException 模拟基础班看过的场景: public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("aaaa"); list.add("bbbb"); list.add("cccc"); list.add("dddd"); Iterator<String> it = list.iterator(); while(it.hasNext()){ list.add("yyyy"); String str = it.next(); System.out.println(str); } } 运行异常: Exception in thread "main" java.util.ConcurrentModificationException 总结; 在使用增强for循环进行集合的迭代的时候其实默认使用的是迭代器,因此在循环中不能使用集合的引用变量直接操作集合,避免导致多线程并发访问的安全性异常。
相关文章推荐
- java增强for循环遍历Map集合问题
- java关于集合的遍历与增强for循环的使用
- java关于集合(list,set,map)的遍历与增强for循环的使用
- java关于集合的遍历与增强for循环的使用
- java中集合的遍历与增强for循环的使用
- [置顶] Android java程序员必备技能,集合与数组中遍历元素,增强for循环的使用详解及代码
- Java关于集合(list,set,map)的遍历与增强for循环的使用
- 使用迭代器Iterator和增强for循环如何遍历集合
- java中集合的遍历与增强for循环的使用
- 集合已修改;枚举操作可能无法执行。使用foreach 循环删除DataRow的时候的问题! 该死的AcceptChanges() Row.elete() Remove(Row)使用不同。
- java关于集合的遍历与增强for循环的使用
- java关于集合的遍历与增强for循环的使用
- java关于集合的遍历与增强for循环的使用
- for循环 增强for循环 iterator遍历集合的区别与用法
- 在使用SSIS设计脚本时候,出现的在PostExecute之外不能锁定变量集合进行读写访问的问题的解决
- ECshop操作使用的常见的问题集合
- 【Java编程】使用增强for循环和迭代器遍历Map集合
- 迭代(遍历)时候不可以使用集合的remove和add方法,但可使用Java迭代器的remove和add方法
- 在Struts+Spring+ibaits中使用poi进行excel操作时候的问题
- 使用for循环删除集合元素需要注意的问题