增强for循环

增强for循环

2019-05-31  本文已影响0人  张轻舟

使用增强for循环可以简化数组和Collection集合的遍历,格式:

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

例:


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

/**
 * 增强for循环
 *
 */
public class ForTest01 {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        list.add("d");

        //增强for循环,优点是可以简化遍历
        for(String s : list){
            System.out.println(s);
        }

    }

}

集合框架中的三种迭代方式删除数据
1.普通for循环,可以删除,注意让索引做自减运算
2.迭代器,可以删除,但是必须使用迭代器自身的remove方法,否则会出现并发修改异常
3.增强for循环不能删除


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

/**
 * 集合框架中的三种迭代方式删除数据
 *
 */
public class ForTest02 {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("b");
        list.add("c");
        list.add("d");

        //1,普通for循环删除,索引做自减运算
        for(int i = 0; i < list.size(); i++) {
            if("b".equals(list.get(i))) {
                list.remove(i);        
                i--;
            }
        }

        //2,迭代器删除
        for(ListIterator<String> iter = list.listIterator(); iter.hasNext();){
            if("b".equals(iter.next())) {
                iter.remove();
            }
        }
        //3,增强for循环不能删除,ConcurrentModificationException
        for (String string : list) {
            if("b".equals(string)) {
                list.remove("b");
            }
        }
        System.out.println(list);
    }

}
上一篇 下一篇

猜你喜欢

热点阅读