zoukankan      html  css  js  c++  java
  • AJPFX关于对集合中的元素删除操作和注意点

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;

    public class ForeTest2 {

    /**
    * 对集合中的元素删除
    */
    public static void main(String[] args) {
    //demo1();

    //demo2();

    //demo();
    }

    private static void demo() {
    List<String> li = new ArrayList<>();
    li.add("a");
    li.add("a");
    li.add("d");
    li.add("f");
    li.add("a");
    li.add("h");

    //因为增强for循环底层是有迭代器实现的,在修改时会报出并发修改异常
    for (String string : li) {
    if("a".equals(string)) {
    li.remove("a");
    }
    }
    System.out.println(li);
    }

    private static void demo2() {
    List<String> li = new ArrayList<>();
    li.add("a");
    li.add("a");
    li.add("d");
    li.add("f");
    li.add("a");
    li.add("h");
    //在用普通for循环修改时,没删掉一个重复的元素,i的值就会改变,对于重复的元素在一块时,
    //后面的重复元素就跳过那个i值了,将会被保留下来,将每次将i-1,就是往上一次,即可避免
    for(int i = 0; i < li.size(); i ++) {
    if("a".equals(li.get(i))) {
    li.remove("a");
    i--;
    }
    }
    System.out.println(li);
    }

    private static void demo1() {
    List<String> li = new ArrayList<>();
    li.add("a");
    li.add("a");
    li.add("d");
    li.add("f");
    li.add("a");
    li.add("h");

    Iterator<String> it = li.iterator();
    while(it.hasNext()) {
    String str = it.next();
    if("a".equals(str)) {
    //在迭代过程中删掉元素,如果用集合的删除方法删除元素,会出现并发修改异常,需要用迭代器的方法
    //li.remove("a");
    it.remove();
    }
    }
    System.out.println(li);
    }

    }

  • 相关阅读:
    对于有API接口数据的监测
    网站、域名、IP、URL、URI、IRI
    面向对象总结
    封装示例:游戏开发
    面向对象基础2
    继承与多态
    如何引用第三方同级以及不同级目录下的的py文件
    Weblogic常见报错以及解决方法
    深度解读企业云上办公利器「无影云电脑」
    java根据模板导出pdf
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10894200.html
Copyright © 2011-2022 走看看