并发修改异常产生的原因及解决方案
* A:案例演示
* 需求:我有一个集合,请问,我想判断里面有没有"world"这个元素,如果有,我就添加一个"javaee"元素,请写代码实现。

List list = new ArrayList();
list.add("a");
list.add("b");
list.add("world");
list.add("d");
list.add("e");

/*Iterator it = list.iterator();    //边遍历,  边增加元素 -------- 是程序不允许的操作
while(it.hasNext()) {
String str = (String)it.next();
if(str.equals("world")) {
list.add("javaee"); //这里会抛出ConcurrentModificationException并发修改异常
}
}*/


* B:ConcurrentModificationException出现
* 迭代器遍历,集合修改集合
* C:解决方案
* a:迭代器迭代元素,迭代器修改元素(ListIterator的特有功能add)   //listiterator特有的方法解决这个问题
* b:集合遍历元素,集合修改元素

 

解决办法:

ListIterator lit = list.listIterator(); //如果想在遍历的过程中添加元素,可以用ListIterator中的add方法
while(lit.hasNext()) {
String str = (String)lit.next();
if(str.equals("world")) {
lit.add("javaee");
//list.add("javaee");
}
}

ListIterator
* boolean hasNext()是否有下一个
* boolean hasPrevious()是否有前一个
* Object next()返回下一个元素
* Object previous();返回上一个元素

  

相关文章:

  • 2021-10-01
  • 2021-09-12
  • 2021-09-14
  • 2021-12-06
  • 2021-11-13
  • 2021-11-29
  • 2022-12-23
  • 2021-07-04
猜你喜欢
  • 2021-08-05
  • 2019-08-27
  • 2021-12-14
  • 2021-08-25
  • 2021-08-15
  • 2021-05-31
  • 2022-12-23
相关资源
相似解决方案