zoukankan      html  css  js  c++  java
  • java 三种迭代 删除元素

    * 普通for循环,可以删除,但是索引要    “--”
    * 迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
    * 增强for循环不能删除

     

     

    增强for
    * 简化数组和Collection集合的遍历
    * B:格式:

    for(元素数据类型 变量 : 数组或者Collection集合) {
    使用变量即可,该变量就是元素
    }

    * C:案例演示
    * 数组,集合存储元素用增强for遍历
    * D:好处
    * 简化遍历
    增强for循环底层依赖的是迭代器(Iterator)

     ==================================================================

    普通for循环:

    注意:如果相邻两个元素为b;删除第一个b后,后面的元素全部前移,后边的那个B移到原来B的位置,而此时i已指向下一个元素

    =============================================

    迭代器删除指定元素

    Iterator<String> it = list.iterator();
    while(it.hasNext()) {
    if("b".equals(it.next())) {
    //list.remove("b"); //不能用集合的删除方法,因为迭代过程中如果集合修改会出现并发修改异常
    it.remove();
    }
    }

    for(Iterator<String> it2 = list.iterator(); it2.hasNext();) {
    if("b".equals(it2.next())) {
    //list.remove("b"); //不能用集合的删除方法,因为迭代过程中如果集合修改会出现并发修改异常
    it2.remove();
    }
    }

     =================================================================

    增强for循环,增强for循环不能删除,只能遍历
    for (String string : list) {
    if("b".equals(string)) {
    list.remove("b");
    }
    }
    System.out.println(list);
    }

  • 相关阅读:
    git基本操作及设置
    5-13 多页面打包配置
    笔记待整理
    单例模式在多线程下的多种实现模式
    面试题小练习1106
    求两个字符串的最大共有子串
    单例模式
    静态初始化一个二维数组并将二维数组排序并输出
    java中数组的基本知识
    关于break语句如何结束多重循环的嵌套
  • 原文地址:https://www.cnblogs.com/yimian/p/6515641.html
Copyright © 2011-2022 走看看