java 判斷集合是否存在某個元素,如果存在新增一個新元素
阿新 • • 發佈:2018-12-11
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"); //正常執行,輸出:[a, b, world, c, d, e, javaee] for(int i=0;i<list.size();i++){ if("world".equals(list.get(i))){ list.add("javaee"); } } //執行報錯:java.util.ConcurrentModificationException for(Object obj:list){ if("world".equals(obj)){ list.add("javaee"); } } //執行報錯:java.util.ConcurrentModificationException Iterator it1 = list.iterator(); while(it1.hasNext()){ Object obj = it1.next(); if("world".equals(obj)){ list.add("javaee"); } } //正常執行,輸出:[a, b, world, javaee, c, d, e] ListIterator it2 = list.listIterator(); while(it2.hasNext()){ Object obj = it2.next(); if("world".equals(obj)){ //注:如果是List.add方法報錯java.util.ConcurrentModificationException //遍歷的同時在增加元素,併發修改ConcurrentModificationException //list.add("javaee"); //ListIterator.add //該元素直接插入到 next 返回的下一個元素的前面(如果有),或者 previous 返回的下一個元素之後(如果有) it2.add("javaee"); } } System.out.println(list); }