遍历ArrayList时移除重复元素失效问题
遍历ArrayList时移除重复元素失效问题
在使用ArrayList时遇到个问题,例如:
public static void remove(ArrayList<String> list) {for (int i = 0; i < list.size(); i++) {String s = list.get(i);if (s.equals("bb")) {list.remove(s);}}
}
当list中元素像(“aa”,“bb”,“bb”,“cc”),待删除元素挨在一起时,用上面的方法删除会出现:
可以看到"bb"没有被正确地删除。
针对这种情况可以倒序删除的方式来避免:
static void remove2(List<String> list){for (int i = list.size()-1;i>=0;i--){String s = list.get(i);if (s.equals("bb")) {list.remove(s);System.out.println("删除了bb");System.out.println(list.toString());}}}
运行结果如下:
遍历ArrayList时移除重复元素失效问题相关推荐
- 写一段代码在遍历 ArrayList 时移除一个元素?
今天楼主继续分享一道经典Java面试题并进行相关知识点的拓展: 上题: 写一段代码在遍历 ArrayList 时移除一个元素? 该问题的关键在于面试者使用的是 ArrayList 的 remove() ...
- 遍历ArrayList并移除一个元素
前言 这是一个比较经典的面试题,相信也会有不少人遇到,今天就在此记录一下,写了两种方式供大家参考. 方式一 在for循环中删除元素,倒序遍历ArrayList能够有效防止漏删,这里大家可能会有疑问了? ...
- java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)
定义一个功能将ArrayList 集合中的重复元素删除 ArrayList 集合中是允许储存重复元素的 import java.util.ArrayList; import java.util.Ite ...
- Python遍历列表时其中的删除元素_CodingPark编程公园
遍历列表时其中的删除元素 删除列表中的元素我们通常会用 .remove( ) 因为删除元素后,整个列表的元素会往前移动,而i却是在最初就已经确定了,是不断增大的,所以并不能得到想要的结果. 所以会造成 ...
- 遍历ArrayList时如何正确移除一个元素
错误写法示例一: public static void remove(ArrayList <String>list) { for (int i = 0; i < list.size( ...
- 通过foreach遍历ArrayList时同时修改报错分析
遍历ArrayList可以有for循环.foreach.迭代器iterator.listIterator,其中通过foreach来遍历同时修改 ArrayList时会抛出 ConcurrentModi ...
- foreach遍历ArrayList时的不当操作与解决
1.不当操作1:ConcurrentModificationException并发修改异常 代码: public class TestList {public static void main(Str ...
- java删除数组中重复元素的方法
java删除数组中重复元素的方法 方法一:for双循环 方法二:利用HashMap,储存元素 方法一:for双循环 1.声明int类型index,该数即可为不重复元素下标,还可统计数组中不重复元素的个 ...
- 遍历ArrayList的过程中移除元素的方式
错误方法一 使用for循环正序遍历ArrayList,使用remove移除元素 结果如下,只删除了一个"3" 原因:在匹配到第一个要删除的元素并移除时,后面元素会往前移位,导致索引 ...
最新文章
- 如何理解java中String的不可变性
- 『原创』+『参考』使用C#在PPC的Today界面上的任务栏加入应用程序图标
- Spring中Bean的概念
- javascript的语法结构
- 路由器启用SNMP服务
- 这次国足想不出线都难
- activiti processEngineLifecycleListener使用
- 学校计算机协会有哪些部门,大学生计算机协会部门职能划分(7页)-原创力文档...
- 史上最全的人工智能知识图谱
- 法勒二维码读头数据读写测试
- 阿里开源自研语音识别模型DFSMN
- 汉语词频统计工具java_中文分词词频统计工具_python 结巴_Java开源中文分词类库分类列表...
- 可编程串行通信接口芯片8251A
- android高德地图自定义地图,Android集成高德地图如何自定义marker
- ORA-16191: Primary log shipping client not logged on standby解决方法
- (10)图像增强- -- 图像对比度和亮度调整方法与实现
- 2018-2019-2 网络对抗技术 20165322 Exp3 免杀原理与实践
- matlab幼苗识别,基于MATLAB的植物幼苗识别
- 全云端万能小程序_百搜全云端万能门店小程序v4.0.13五端独家2次开发升级独立版...
- 车路协同先导试验平台
热门文章
- Facebook新AI模型SEER实现自监督学习,LeCun大赞最有前途
- 【从零开始写漏扫】服务识别—自己动手写一个指纹识别器—网络特征指纹
- [Linux]nvidia optimus在linux下使用
- 基于SSM框架实现的驾校管理系统
- Video Processing subsystem例程分析
- NGFW_双向NAT
- DXF文件格式——二进制 DXF 文件
- 矩阵股份上市首日跌破发行价:振幅达10%,王冠为实际控制人
- 信息学奥赛一本通1104年龄与疾病
- CS269I:Incentives in Computer Science 学习笔记:Lecture 7 Selfish Routing(自利寻径网络超额配置)