1. 程式人生 > >ListIterator避免併發修改異常

ListIterator避免併發修改異常

public class Demo3_List {

	/**
	 ** A:案例演示
	 * 需求:我有一個集合,請問,我想判斷裡面有沒有"world"這個元素,如果有,我就新增一個"javaee"元素,請寫程式碼實現。
	 */
	public static void main(String[] args) {
		List list = new ArrayList();
		list.add("a");									//Object obj = new String();
		list.add("b");
		list.add("world");
		list.add("c");
		list.add("d");
		list.add("e");
		
		/*Iterator it = list.iterator();					//獲取迭代器
		while(it.hasNext()) {							//判斷集合中是否有元素
			String str = (String)it.next();				//向下轉型
			if("world".equals(str)) {
				list.add("javaee");						//遍歷的同時在增加元素,併發修改ConcurrentModificationException
			}
		}*/
		
		ListIterator lit = list.listIterator();			//獲取迭代器(List集合特有的)
		while(lit.hasNext()) {
			String str = (String)lit.next();			//向下轉型
			if("world".equals(str)) {
				//list.add("javaee");						//遍歷的同時在增加元素,併發修改ConcurrentModificationException
				lit.add("javaee");
			}
		}
		
		System.out.println(list);
	}

}