如何遍历ArrayList集合,并安全删除其中的元素[通俗易懂]

如何遍历ArrayList集合,并安全删除其中的元素[通俗易懂]如何遍历ArrayList集合,并安全删除其中的元素?1、遍历ArrayList集合有三种方式(1)for循环(2)增强for循环,也就是foreach(3)迭代器iterator2、普通for循环遍历删除元素,list集合的大小会变小,而索引也会发生改变,所以利用ffor循环遍历删除元素会漏调某些元素。例如我for循环遍历删除第一个元素,接着按照…

大家好,又见面了,我是你们的朋友全栈君。

如何遍历ArrayList集合,并安全删除其中的元素?

1、遍历ArrayList集合有三种方式
    (1)for循环
    (2)增强for循环,也就是foreach
    (3)迭代器iterator
2、普通for循环遍历删除元素,list集合的大小会变小,而索引也会发生改变,所以利用f
   for循环遍历删除元素会漏调某些元素。
   例如我for循环遍历删除第一个元素,接着按照索引去寻找第二个元素,由于删除的关系
   后面所有的元素都会往前面移动一位,就会导致按照索引得到的是第三个元素。
   解决方法:将list集合反过来遍历,循环删除其中的元素
   
   当我们使用增强for循环删除第一个元素后,再去遍历list集合,此时就会报并发修改错
   (concurrentModificationException异常)。
   通过查看list的remove方法的源码,我们可以看到,remove方法中有一个modCount++操作,
   然后再list集合的迭代器中有一个check操作,也就是检查modCount是否改变,如果改变
   就会抛出并发修改错误。
   解决方法:增强for循环遍历删除第一个元素后就break跳出。
   
   使用迭代器循环遍历删除某些元素,不会出现问题,但是我们要注意的是,使用的是
   iteraror.remove()方法,而不是list.remove()方法;如果使用的是list的remove方法,
   同样会报conCurrentModificationbException异常
3、总结
   如果是遍历删除list集合中某个特定的元素,使用这三个遍历方式都可以。
   如果要循环遍历删除多个元素,最好使用迭代器。其次使用普通for循环反过来遍历list集合
   
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163132.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c++ double转string

    c++ double转string//double精度17位stringDoubleToStr(doublenum){ ostringstreamout; //设置精度 out.precision(17); out<<num; returnout.str();}

    2025年7月10日
    6
  • 微商分销代理新零售商城源码

    微商分销代理新零售商城源码介绍:一款比较简单的微商分销代理商城。前台可申请区域代理,后台设置升级条件和佣金奖励百分比。网盘下载地址:http://kekewl.net/WxdHLptocNg0图片:

    2022年5月13日
    46
  • origin画图初步入门

    origin画图初步入门origin画图初步入门今天正好有空就做一个origin的画图教程,本人水平不是很高,以下过程权当借鉴。好了,废话少说,让我们开始。1、打开你的origin软件,我还是比较推荐中文版的,用起来比较方便。我的装了很久了,也就难得改了。2、建立项目,点击File->New->Project。如下图所示。3、完成步骤二以后,得到一个空白表格。4、将你要画图的数据复制进…

    2022年5月16日
    48
  • chmod- linux修改文件权限[通俗易懂]

    chmod- linux修改文件权限[通俗易懂]在Unix和Linux的各种操作系统下,每个文件(文件夹也被看作是文件)都按读、写、运行设定权限。例如我用ls-l命令列文件表时,得到如下输出:-rw-r–r–1appleusers22542006-05-2013:47tt.htm从第二个字符起rw-是说用户apple有读、写权,没有运行权,接着的r–表示用户组users只有读权限,没有运行权,最后的r–指其他人(others)只有读权限,没有写权和运行权。这是系统默认设置,我可以改写tt.htm,同组的人和其他

    2025年8月26日
    7
  • 仿淘宝京东筛选  地图多个标注点添加百度样式检索窗口

    仿淘宝京东筛选  地图多个标注点添加百度样式检索窗口

    2021年10月10日
    47
  • JSONPath 表达式

    JSONPath 表达式JSONPath是参照,xpath表达式来解析xml文档的方式,json数据结构通常是匿名的并且不一定需要有根元素。JSONPaht用一个抽象的名字$来表示最外层对象。JOSNPath表达式可以使用. 符号如下:$.store.book[0].title或者使用[]符号$[‘store’][‘book’][0][‘title’]从输入路径来看。内部或者输出的路径都会转化成-符号。JSON…

    2022年6月16日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号