如何遍历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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • K3 官改新手小白配置阿里DDNS 超级详细「建议收藏」

    K3 官改新手小白配置阿里DDNS 超级详细「建议收藏」K3官改新手小白配置阿里DDNS超级详细写的比较仓促,不对之处请指正,这个是写给小白看的,大神勿喷首先介绍一下什么是DDNSDDNS(DynamicDomainNameServer)是动态域名服务的缩写。DDNS是将用户的动态IP地址映射到一个固定的域名解析服务上,用户每次连接网络的时候客户端程序就会通过信息传递把该主机的动态IP地址传送给位于服务商主机上的服务器程序,服务器…

    2022年6月12日
    44
  • javascript之处理Ajax错误

    javascript之处理Ajax错误

    2022年2月4日
    49
  • JMH: 最牛逼的基准测试工具套件

    JMH: 最牛逼的基准测试工具套件JMH简介官网:http://openjdk.java.net/projects/code-tools/jmh/简介:JMHisaJavaharnessforbuilding,running,andanalysingnano/micro/milli/macrobenchmarkswritteninJavaandotherlanguagestargettingtheJVM,由简介可知,JMH不止能对Java语言做基准测试,还能对运行在JVM上的其他语言做基准测试

    2022年7月27日
    10
  • wind river hypervisor 2.0.2.1

    wind river hypervisor 2.0.2.1

    2022年1月2日
    54
  • ubuntu更换国内源

    ubuntu更换国内源ubuntu16.04和18.04更换国内源写在前面:安装好ubuntu双系统后,默认的软件更新源是国外的,在国内使用速度很慢,用”aptinstallxxx”安装软件时可能出现”网络不可达”、”你的网络需要认证吗”、”无法定位软件包”等错误,所以我们需要更换成国内的源,这样才能正常安装和更新软件。一、ubuntu16.04更换国内源1.备份原始源文件source.list桌面…

    2022年6月4日
    103
  • IDEA 安装 Lombok 插件

    IDEA 安装 Lombok 插件

    2021年7月11日
    123

发表回复

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

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