zoukankan      html  css  js  c++  java
  • java ListIterator接口

    并发修改异常产生的原因及解决方案
    * 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();返回上一个元素

      

  • 相关阅读:
    [ZZ]风险驱动的测试
    移动测试书籍推荐
    4月收藏
    Appium路线图及1.0正式版发布
    匿名吐槽和测试小道消息
    文章收藏
    [ZZ]最小化不可重现的bug
    华人世界——客家足迹行
    移动测试会第七期
    2月收藏
  • 原文地址:https://www.cnblogs.com/yimian/p/6512554.html
Copyright © 2011-2022 走看看