美文网首页
List使用迭代器循环遍历及删除元素

List使用迭代器循环遍历及删除元素

作者: AC编程 | 来源:发表于2022-08-30 11:25 被阅读0次

    一、结论

    for循环、foreach都不能用来删除指定元素,可以通过迭代器来删除指定的元素

    二、代码

    public class Client {
        public static void main(String[] args) {
            test3();
        }
    
    
        /**
         * 正常
         */
        public static void test() {
            List<String> list = new ArrayList<>();
    
            list.add("A");
            list.add("B");
            list.add("C");
    
            for (String item : list) {
                if (item.equals("B")) {
                    list.remove(item);
                }
            }
    
            System.out.println(list);
        }
    
        /**
         * 报错:Exception in thread "main" java.util.ConcurrentModificationException
         */
        public static void test2() {
            List<String> list = new ArrayList<>();
    
            list.add("A");
            list.add("B");
            list.add("B");
            list.add("C");
    
            for (String item : list) {
                if (item.equals("B")) {
                    list.remove(item);
                }
            }
    
            System.out.println(list);
        }
    
        /**
         * 迭代器删除指定元素:正常
         */
        public static void test3() {
            List<String> list = new ArrayList<>();
    
            list.add("A");
            list.add("B");
            list.add("B");
            list.add("C");
    
            //目标删除指定元素
            Iterator<String> it = list.iterator();
            while (it.hasNext()) {
                String item = it.next();
                if (item.equals("B")) {
                    it.remove();
                }
            }
            System.out.println(list);
        }
    }
    

    相关文章

      网友评论

          本文标题:List使用迭代器循环遍历及删除元素

          本文链接:https://www.haomeiwen.com/subject/rzmhnrtx.html