ArrayList删除元素的正确姿势

package com.kevinlsui.base;

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

public class Test_listRemove {

    public static void main(String[] args) {
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        list.add("3");
        list.add("4");
        System.out.println(list);

        /*for(String a : list){
            // 报错。java.util.ConcurrentModificationException
            list.remove(a);
        }*/

        /*for(Iterator<String> ti = list.iterator();ti.hasNext();){
            System.out.println(ti.next());
            //报错。java.util.ConcurrentModificationException
            list.remove(ti.next());
        }*/

        //1.迭代器删除元素,ok
        //2.只有内部实现迭代器的类(比如list),才可以使用foreach循环(本质是迭代器实现)
        for(Iterator<String> ti = list.iterator();ti.hasNext();){
            //System.out.println(ti.next());
            //使用迭代器删除,ok
            ti.remove();
        }
        System.out.println(list);
    }

}
文章目录
|