我是靠谱客的博主 唠叨皮卡丘,最近开发中收集的这篇文章主要介绍集合框架--List ConcurrentModificationException,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

ConcurrentModificationException.java

package cn.itcast.exception;

import java.lang.ref.SoftReference;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
/**
 * ConcurrentModificationException:
 * 		当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常
 *
 * 产生的原因:
 * 		迭代器是依赖于集合存在的,在判断成功后,集合中新添加了元素,而迭代器却不知道
 * 
 * 解决方法:
 * 		集合遍历元素,集合修改元素
 * 		迭代器遍历元素,迭代器修改元素(普通for循环,增强for循环底层也是用迭代器实现的)
 * 
 */
public class ConcurrentModificationException {

	public static void main(String[] args) {
		List list = new ArrayList();
		list.add("hello");
		list.add("world");
		list.add("java");
		
		//迭代器遍历   ConcurrentModificationException
//		Iterator it = list.iterator();
//		while(it.hasNext()){
//			String s = (String)it.next();
//			if("world".equals(s)){
//				list.add("javaee");
//			}			
//		}
		
//		ListIterator listIt = list.listIterator();
//		while(listIt.hasNext()){
//			String ss = (String) listIt.next();
//			if("world".equals(ss)){
//				listIt.add("javaee");
//			}
//			System.out.println(ss);
//		}
//		System.out.println("-----------------");
//		System.out.println(list);
//	Output:
//		hello
//		world
//		java
//		-----------------
//		[hello, world, javaee, java]
		
		for(int i=0; i<list.size();i++){
			String ss = (String) list.get(i);
			if(ss.equals("world")){
				list.add("javaee");
			}
			System.out.println(ss);
		}
		System.out.println("-----------------");
		System.out.println(list);	
//	Output:
//		hello
//		world
//		java
//		javaee
//		-----------------
//		[hello, world, java, javaee]		
		
	}
}

 

最后

以上就是唠叨皮卡丘为你收集整理的集合框架--List ConcurrentModificationException的全部内容,希望文章能够帮你解决集合框架--List ConcurrentModificationException所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部