【笔记】for循环遍历删除操作

在Java中,有些场景会需要根据条件遍历集合元素,进行删除操作。

  1. 推荐下面这种,迭代器方式删除

阿里规约:【强制】不要在 foreach 循环里进行元素的 remove/add 操作。remove 元素请使用 Iterator方式,如果并发操作,需要对 Iterator 对象加锁。

    @Test
    void testList2(){
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String item = iterator.next();
            if ("2".equals(item)) {
                iterator.remove();
            }
        }
        System.out.println(list);
    }
  1. for循环遍历删除最后不要使用下面的方式1,否则很可能出问题。
@Test
    void testList(){
        List<String> list = new ArrayList<String>();
        list.add("1");
        list.add("2");
        for (String item : list) {
            if ("2".equals(item)) {
                list.remove(item);
            }
        }
        System.out.println(list);
    }

ps: 如果非要使用这种的话,可以使用倒序遍历删除

你可能感兴趣的:(mybatis,笔记,java)