Java 中集合并发修改异常解决方案

* 需求:创建List集合对象,如果当前集合中存在一个"world"元素,给集合中添加一个新的元素"javaee" ;
 *
 *
 ** java.util.ConcurrentModificationException:使用迭代器遍历集合,不能使用集合操作元素!
 * 并发修改异常:
 *         并发:在同一个时间点上同时发生 ------>高并发
 *         并行:在同一个时间段内同时发生
 * 
 * 集合中出现异常:
 *         使用迭代器遍历集合,在同时使用集合对象操作元素,就会出现这个异常!
 *         迭代器遍历集合元素,集合添加元素,而对于迭代器对象并不知道存在一个新的元素!
 * 
 * 如何解决呢?
 *         1)迭代器遍历集合,迭代器添加元素 :ListIterator存在添加功能
 *         2)集合遍历,集合添加 :普通for循环:(size()和get(int index)相结合)

public class ListIteratorTest {
	public static void main(String[] args) {
		//创建一个List集合对象,本身存在三个元素"hello","world","java"
		List list=new ArrayList();
		//添加元素
		list.add("hello");
		list.add("world");
		list.add("java");
		//方案1 迭代器遍历集合,迭代器添加元素
		ListIterator lit=list.listIterator();
		//遍历
		while(lit.hasNext()) {
			String s=(String)(lit.next());
			//判断
			if("world".equals(s)) {
				lit.add("javaee");
			}
		}
		System.out.println(list);
		System.out.println("---------------");
		//方式二 size()和get(int index)
		for(int x=0;x<list.size();x++) {
			String s1=(String)(list.get(x));
			if("world".equals(s1)) {
				list.add("javaee");
			}
		}
		System.out.println(list);
	}
}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值