为什么我使用ListIterator一直报错

package list;

import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;

public class Demo2 {
public static void main(String[] args){
List<String> al=new ArrayList<String>();
al.add("ni");
al.add("hao");
al.add("guo");
al.add("da");
al.add("xia");
ListIterator<String> li=al.listIterator();
while(li.hasNext()){
if((String) li.next()=="hao"){
System.out.println(al);
al.add(2,"ma");
}
}

}

}

Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
at list.Demo2.main(Demo2.java:17)
[ni, hao, guo, da, xia]

在用Iterator遍历list集合的时候不要对list进行修改操作,
会抛出java.util.ConcurrentModificationException异常

在foreach语句遍历list也是同样的追问

我知道,但是我使用的是ListIterator,这个是可以在遍历时候add的

追答

要使用ListIterator.add(Object object)方法添加,不能用List.add()

追问

追答

把al改成li

追问

谢谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-03
原因是你遍历该集合时,对该集合进行了元素的增加操作导致的,如果你有增加元素的必要,建议赋值到另一个集合,然后对他进行增加操作

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网