广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >【笔记】Java中for循环遍历删除操作
  • 909
分享到

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

mybatis笔记java 2023-08-24 08:08:56 909人浏览 泡泡鱼
摘要

在Java中,有些场景需要遍历集合中的元素,然后根据条件进行删除元素的操作。如果使用传统的for循环遍历方式来删除元素,很可能出错或发生意想不到的问题。推荐使用迭代器iterator完成 1. 推荐使用迭代器方式****删除 阿里

在Java中,有些场景需要遍历集合中的元素,然后根据条件进行删除元素的操作。如果使用传统的for循环遍历方式来删除元素,很可能出错或发生意想不到的问题。推荐使用迭代器iterator完成

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);    }

2. 尽量不要使用for循环遍历删除,否则很可能出问题。

因为删除元素后,数组元素发生前移,后续遍历可能导致

  1. 数组访问越界错误:元素减少,但是size()没有变,(可改成for里使用list.size())
  2. 有元素没遍历到
@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);    }    //或    @Test    void testList2(){        List<String> list = new ArrayList<String>();        list.add("1");        list.add("2");        int size = list.size();        for (int i=0; i<size; i++) {            if ("2".equals(list.gei(i))) {                list.remove(i);             }        }        System.out.println(list);    }

3. 如果非要使用这种的话,可以使用倒序遍历删除,这样即使发生元素移动,不影响前面的元素

    @Test    void testList3(){        List<String> list = new ArrayList<String>();        list.add("1");        list.add("2");        for (int i=list.size()-1; i>=0; i--) {            if ("2".equals(list.gei(i))) {                list.remove(i);             }        }        System.out.println(list);    }

来源地址:https://blog.csdn.net/zsx1713366249/article/details/131170630

--结束END--

本文标题: 【笔记】Java中for循环遍历删除操作

本文链接: https://www.lsjlt.com/news/379266.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 【笔记】Java中for循环遍历删除操作
    在Java中,有些场景需要遍历集合中的元素,然后根据条件进行删除元素的操作。如果使用传统的for循环遍历方式来删除元素,很可能出错或发生意想不到的问题。推荐使用迭代器iterator完成 1. 推荐使用迭代器方式****删除 阿里...
    99+
    2023-08-24
    mybatis 笔记 java
  • Java中如何使用for循环语句遍历所有元素
    这篇文章主要为大家展示了“Java中如何使用for循环语句遍历所有元素”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中如何使用for循环语句遍历所有元素...
    99+
    2022-10-19
  • java集合类遍历的同时如何进行删除操作
    目录java集合类遍历的同时进行删除操作1. 背景2. 代码示例3. 分析java集合中的一个移除数据陷阱遍历集合自身并同时删除被遍历数据异常本质原因解决java集合类遍历的同时进行...
    99+
    2022-11-12
  • Java中List常用操作比for循环更优雅的写法示例
    目录引言简单遍历筛选符合某属性条件的List集合获取某属性返回新的List集合获取以某属性为key,其他属性或者对应对象为value的Map集合以某个属性进行分组的Map集合其他情况...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作