ArrayList循环遍历并删除元素的常见问题_arraylist y一边遍历一边移除使用增强for循环会报错吗-程序员宅基地

技术标签: java基础  java  

在工作和学习中,经常碰到删除ArrayList里面的某个元素,看似一个很简单的问题,却很容易出现问题。
示例:
在这里插入图片描述
我们看见删除list中‘b’的值,这种最普通的循环写法执行后会发现第二个“b”的字符没有删掉。
原因:因为在ArrayList底层用的是数组实现,所以存储的时候是一块连续的地址。当检测相同元素并删除的同时,之后的整个数组就和集体往前移动,此次循环结束后的累加器又 ++1,所有相邻的一个就会被忽略掉。

解决:删除后,将指针往前移一位。
在这里插入图片描述
迭代器删除
原因 :java.util.ConcurrentModificationException并发修改异常,迭代器获得元素信息,在迭代中删除了list集合中的数据
注意:如果在迭代器中用数组本身去删除会报错
在这里插入图片描述
原因 :java.util.ConcurrentModificationException并发修改异常,迭代器获得元素信息,在迭代中删除了list集合中的数据

如果使用增强for删除元素会报错。
在这里插入图片描述
增强for循环,不能删除元素,因为他的底层实现是迭代器实现的,又不能调用迭代器的删除方法,所以此方法只能用来遍历,不能用来删除元素。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46204877/article/details/124041971

智能推荐

bzoj3110(线段树套线段树、树状数组套线段树)_三角形数阵 线段树-程序员宅基地

文章浏览阅读1.4k次。http://www.lydsy.com/JudgeOnline/problem.php?id=3110 题意: 有N个位置,M个操作。操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c 如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少。 ##tip: 线段树套线段树,外面是权值,每个节点上的线段树是位置, 比如_三角形数阵 线段树

Qt MySql Driver not loaded问题处理-程序员宅基地

文章浏览阅读2.2k次。原因分析Qt的数据库驱动没有安装,或者缺少MySql数据库的动态库或静态库(libmysql.dll或libmysql.lib);解决方法1Qt的数据库驱动没有安装的话,在对应的qt的安装目录下的plugins/sqldrivers/下,应该是没有对应的数据库的驱动库,如qsqlmysql.dll、qsqlmysqld.dll的驱动库。解决方法:(1)、重新安装qt,勾选上qsqldatabase;(2)、复制同版本的相应的库;解决方法2没有安装mysql数据库,qt编译机器上缺少libmy_driver not loaded

搜索接口优化方案——elasticsearch分布式搜索引擎的基本使用_elasticsearch全站搜索优化技术方案-程序员宅基地

文章浏览阅读509次。前言: 在开发项目中一般都会有搜索功能。如果是面向C端的搜索功能,往往都特别考验性能。比如普通的商城系统中的商品搜索或者一些资源的站内搜索。 可能以前的做法就是对商品表做一个按名称或商品描述做模糊查询。更好一点的是对搜索关键字进行分词,并且专门建一个搜索词库表。不过前期需要对搜索词进行拆解然后幂集组合并于商品ID关联,搜索字与词库表的字以完全匹配的方式查询并找到商品ID。 虽然建词库表也是不错的解决方法,但是还要拆解存库建索引,相对比较麻烦。所以也是在网上查询了解到了elast..._elasticsearch全站搜索优化技术方案

基于无监督退化表示学习的 Blind SR | 环境搭建 | 测试简记 |【CVPR2021、附源码】-程序员宅基地

文章浏览阅读1.3k次,点赞2次,收藏4次。基于无监督退化表示学习的 Blind SR | 环境搭建 | 测试简记 、附源码、完美运行_退化表示学习

在jupyter中引用import jupyter的.ipynb文件的四种方法_jupyter import-程序员宅基地

文章浏览阅读1.6w次,点赞21次,收藏79次。在jupyter中import jupyter的.ipynb文件用jupyter时,保存的文件后缀是.ipynb。直接import是不能使用的。直接导入会报错为:没有该模块。解决的方法有两种:1.将.ipynb文件转化为.py文件。但是在后期的使用时会造成一定的不便。因为习惯使用.ipynb进行编程,每次修改之后都必须重新进行文件的转化,特别是引用文件比较多时,对文件的管理以及后续的编程带来很大的不便。2.在jupyter中直接引用.ipynb文件,import的.ipynb文件修改之后,可以直接_jupyter import

Java基础Object的equals方法和“==”在何时使用_object的比较,就是“==”和equals的使用场景?-程序员宅基地

文章浏览阅读5.9k次。java语言当中的字符串String有没有重写toString方法,有没有重写equals方法总结:1、String类已经重写了equals方法,比较两个字符串不能使用==,必须使用equals。equals是通用的。2、String类已经重写了toString方法。大结论:java中什么类型的数据可以使用“双等于号”判断java中什么类型的数据需要使用equals判断。_object的比较,就是“==”和equals的使用场景?

随便推点

debian系linux,更换apt-get官方源为国内源_debian jessie apt source-程序员宅基地

文章浏览阅读771次。原文地址:https://blog.csdn.net/yjk13703623757/article/details/789433451. 更换apt-get官方源为163源操作前做好相应备份# mv /etc/apt/sources.list /etc/apt/sources.list.bak1以Jessie为例,编辑/etc/apt/sources.list文件# vim /etc/apt/so..._debian jessie apt source

【ASP.NET Identity系列教程(二)】运用ASP.NET Identity-程序员宅基地

文章浏览阅读134次。注:本文是【ASP.NET Identity系列教程】的第二篇。本系列教程详细、完整、深入地介绍了微软的ASP.NET Identity技术,描述了如何运用ASP.NET Identity实现应用程序的用户管理,以及实现应用程序的认证与授权等相关技术,译者希望本系列教程能成为掌握ASP.NET Identity技术的一份完整而有价值的资料。读者若是能够按照文章的描述,一边阅读、一边实践、一边理解,..._asp.net identity 中iauthrization怎么使用

PHP分表的几种方式-程序员宅基地

文章浏览阅读3.2k次。分表的几种方式:1、mysql集群事实它并不是分表,但起到了和分表相同的作用。集群可分担数据库的操作次数,将任务分担到多台数据库上。集群可以读写分离,减少读写压力。从而提升数据库性能。2、自定义规则分表大表可以按照业务的规则来分解为多个子表。通常为以下几种类型,也可自己定义规则。1 Range(范围)–这种模式允许将数据划分不同范围。例如可以将一个表通过年份划分成若干个分区。2 Has..._php分表

Beescms_v4.0 sql注入漏洞复现与原理分析(白盒与黑盒)_bees cms漏洞复现-程序员宅基地

文章浏览阅读2.3k次。一、漏洞描述Beescms v4.0由于后台登录验证码设计缺陷以及代码防护缺陷导致存在bypass全局防护的SQL注入。二、漏洞环境搭建1.官方下载Beescms v4.0,下载地址: http://beescms.com/cxxz.html,然后解压压缩文件,然后把文件放到phpstudy的网站根目录2.浏览器访问http://安装目录/install,开始安装一直下一步出现如下界面即可安装完成:安装完成后修改my.ini文件,在[mysqld]后面添加secure_fil_bees cms漏洞复现

什么是脚本,脚本语言?-程序员宅基地

文章浏览阅读6.3w次,点赞281次,收藏781次。一、脚本百科解释:脚本(script)是使用一种特定的描述性语言,依据一定的格式编写的可执行文件,又称作宏或批处理文件。脚本通常可以由应用程序临时调用并执行。各类脚本目前被广泛地应用于网页设计中,因为脚本不仅可以减小网页的规模和提高网页浏览速度,而且可以丰富网页的表现,如动画、声音等。举个最常见的例子,当我们点击网页上的E-mail地址时能自动调用Outlook Express或Fox..._脚本语言

【Django】MD5加密,make_password,check_password_django 生成的makepassword 能被解秘么-程序员宅基地

文章浏览阅读868次。MD5不可逆加密:只能加密,不能解密转为32位16进制密文 import hashlib def my_md5(pwd): m = hashlib.md5()![在这里插入图片描述](https://img-blog.csdnimg.cn/20190808200253874.png?x-oss-process=image/watermark,type_ZmFuZ3p..._django 生成的makepassword 能被解秘么

推荐文章

热门文章

相关标签