妖碧落

导航

三种迭代,增强for循环

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

import java.util.ArrayList;
import java.util.Iterator;
import com.heima.bean.Person;

public class demon_bigFor {
    /*
     * 增强for循环
     *   底层用迭代器实现
     * 
     * 格式:
     *    for(元素数据类型 变量 : 数组或collection集合){
     *            使用变量即可,该变量就是元素
     *    }
     */
    public static void main(String[] args) {
        //demo1();
        //demo2();
        ArrayList<String> l3 = new ArrayList<>();
        l3.add("a");
        l3.add("b");
        l3.add("c");
        l3.add("d");
        //  1,普通for循环
        /*for (int i = 0; i < l3.size(); i++) {
            if ("b".equals(l3.get(i))) {
                l3.remove(i);
            }
        }
        System.out.println(l3);*/
        
        // 2,迭代循环
        Iterator<String> iterator = l3.iterator();
        while (iterator.hasNext()) {
            String string = iterator.next();
            if ("b".equals(string)) {
                iterator.remove();
            }
            
        }
    }

    public static void demo2() {
        ArrayList<Person> l2 = new ArrayList<>();
        l2.add(new Person("张三",23));
        l2.add(new Person("李四",24));
        l2.add(new Person("王五",25));
        l2.add(new Person("赵柳",26));
        l2.add(new Person("周七",27));
        for (Person person : l2) {
            System.out.println(person);
        }
    }

    public static void demo1() {
        int[] arr = {11,22,33,44,55};
        /*for (int i : arr) {
            System.out.println(i);
        }*/
        ArrayList<String> l1 = new ArrayList<>();
        l1.add("a");
        l1.add("b");
        l1.add("c");
        l1.add("d");
        for (String string : l1) {
            System.out.println(string);
        }
    }

}

 

posted on 2019-08-05 21:59  妖碧落  阅读(400)  评论(0编辑  收藏  举报