遍历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时移除重复元素失效问题相关推荐

  1. 写一段代码在遍历 ArrayList 时移除一个元素?

    今天楼主继续分享一道经典Java面试题并进行相关知识点的拓展: 上题: 写一段代码在遍历 ArrayList 时移除一个元素? 该问题的关键在于面试者使用的是 ArrayList 的 remove() ...

  2. 遍历ArrayList并移除一个元素

    前言 这是一个比较经典的面试题,相信也会有不少人遇到,今天就在此记录一下,写了两种方式供大家参考. 方式一 在for循环中删除元素,倒序遍历ArrayList能够有效防止漏删,这里大家可能会有疑问了? ...

  3. java——定义一个功能将ArrayList 集合中的重复元素删除(java集合七)

    定义一个功能将ArrayList 集合中的重复元素删除 ArrayList 集合中是允许储存重复元素的 import java.util.ArrayList; import java.util.Ite ...

  4. Python遍历列表时其中的删除元素_CodingPark编程公园

    遍历列表时其中的删除元素 删除列表中的元素我们通常会用 .remove( ) 因为删除元素后,整个列表的元素会往前移动,而i却是在最初就已经确定了,是不断增大的,所以并不能得到想要的结果. 所以会造成 ...

  5. 遍历ArrayList时如何正确移除一个元素

    错误写法示例一: public static void remove(ArrayList <String>list) { for (int i = 0; i < list.size( ...

  6. 通过foreach遍历ArrayList时同时修改报错分析

    遍历ArrayList可以有for循环.foreach.迭代器iterator.listIterator,其中通过foreach来遍历同时修改 ArrayList时会抛出 ConcurrentModi ...

  7. foreach遍历ArrayList时的不当操作与解决

    1.不当操作1:ConcurrentModificationException并发修改异常 代码: public class TestList {public static void main(Str ...

  8. java删除数组中重复元素的方法

    java删除数组中重复元素的方法 方法一:for双循环 方法二:利用HashMap,储存元素 方法一:for双循环 1.声明int类型index,该数即可为不重复元素下标,还可统计数组中不重复元素的个 ...

  9. 遍历ArrayList的过程中移除元素的方式

    错误方法一 使用for循环正序遍历ArrayList,使用remove移除元素 结果如下,只删除了一个"3" 原因:在匹配到第一个要删除的元素并移除时,后面元素会往前移位,导致索引 ...

最新文章

  1. 如何理解java中String的不可变性
  2. 『原创』+『参考』使用C#在PPC的Today界面上的任务栏加入应用程序图标
  3. Spring中Bean的概念
  4. javascript的语法结构
  5. 路由器启用SNMP服务
  6. 这次国足想不出线都难
  7. activiti processEngineLifecycleListener使用
  8. 学校计算机协会有哪些部门,大学生计算机协会部门职能划分(7页)-原创力文档...
  9. 史上最全的人工智能知识图谱
  10. 法勒二维码读头数据读写测试
  11. 阿里开源自研语音识别模型DFSMN
  12. 汉语词频统计工具java_中文分词词频统计工具_python 结巴_Java开源中文分词类库分类列表...
  13. 可编程串行通信接口芯片8251A
  14. android高德地图自定义地图,Android集成高德地图如何自定义marker
  15. ORA-16191: Primary log shipping client not logged on standby解决方法
  16. (10)图像增强- -- 图像对比度和亮度调整方法与实现
  17. 2018-2019-2 网络对抗技术 20165322 Exp3 免杀原理与实践
  18. matlab幼苗识别,基于MATLAB的植物幼苗识别
  19. 全云端万能小程序_百搜全云端万能门店小程序v4.0.13五端独家2次开发升级独立版...
  20. 车路协同先导试验平台

热门文章

  1. Facebook新AI模型SEER实现自监督学习,LeCun大赞最有前途
  2. 【从零开始写漏扫】服务识别—自己动手写一个指纹识别器—网络特征指纹
  3. [Linux]nvidia optimus在linux下使用
  4. 基于SSM框架实现的驾校管理系统
  5. Video Processing subsystem例程分析
  6. NGFW_双向NAT
  7. DXF文件格式——二进制 DXF 文件
  8. 矩阵股份上市首日跌破发行价:振幅达10%,王冠为实际控制人
  9. 信息学奥赛一本通1104年龄与疾病
  10. CS269I:Incentives in Computer Science 学习笔记:Lecture 7 Selfish Routing(自利寻径网络超额配置)