list.remove()时出问题,集合的remove方法注意事项2

不要在 foreach 循环里进行元素的 remove/add 操作。 remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。
另可参考:
list.remove()时出问题,集合的remove方法注意事项1

        正例:
        List<String> list = new ArrayList<>();
        list.add("1");
        list.add("2");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String item = iterator.next();
            if (删除元素的条件) {
                iterator.remove();
            }
        }

        反例:
        for (String item : list) {
            if ("1".equals(item)) {
                list.remove(item);
            }
        }

猜你喜欢

转载自blog.csdn.net/weixin_39800144/article/details/81167555