Java中List循环遍历的时候删除当前对象(自己)
2021/11/23 17:09:43
本文主要是介绍Java中List循环遍历的时候删除当前对象(自己),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
方法一 Java代码1 ArrayList<String> list = new ArrayList<String>(); 2 list.add("one"); 3 list.add("two"); 4 list.add("two"); 5 list.add("two"); 6 list.add("two"); 7 for(int i=0;i<list.size();i++){ 8 if(list.get(i).equals("two")){ 9 list.remove(i); 10 } 11 } 12 System.out.println(list); 13 结果: 14 Java代码 15 [one, two, two]
方法二 Java代码
1 ArrayList<String> list = new ArrayList<String>(); 2 list.add("one"); 3 list.add("two"); 4 list.add("two"); 5 list.add("two"); 6 list.add("two"); 7 for(String s:list){ 8 if(s.equals("two")){ 9 list.remove(s); 10 } 11 } 12 System.out.println(list); 13 14 结果: 15 Java代码 16 Exception in thread "main" java.util.ConcurrentModificationException 17 at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372) 18 at java.util.AbstractList$Itr.next(AbstractList.java:343) 19 at Test.main(Test.java:22)
方法三: Java代码
1 ArrayList<String> list = new ArrayList<String>(); 2 list.add("one"); 3 list.add("two"); 4 list.add("two"); 5 list.add("two"); 6 list.add("two"); 7 Iterator<String> iter = list.iterator(); 8 while(iter.hasNext()){ 9 String s = iter.next(); 10 if(s.equals("two")){ 11 iter.remove(); 12 } 13 } 14 System.out.println(list); 15 结果: 16 Java代码 17 [one]
结论: 删除还是用迭代器的比较好,其它的都会有问题.
这篇关于Java中List循环遍历的时候删除当前对象(自己)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2025-01-11cursor试用出现:Too many free trial accounts used on this machine 的解决方法
- 2025-01-11百万架构师第十四课:源码分析:Spring 源码分析:深入分析IOC那些鲜为人知的细节|JavaGuide
- 2025-01-11不得不了解的高效AI办公工具API
- 2025-01-102025 蛇年,J 人直播带货内容审核团队必备的办公软件有哪 6 款?
- 2025-01-10高效运营背后的支柱:文档管理优化指南
- 2025-01-10年末压力山大?试试优化你的文档管理
- 2025-01-10跨部门协作中的进度追踪重要性解析
- 2025-01-10总结 JavaScript 中的变体函数调用方式
- 2025-01-10HR团队如何通过数据驱动提升管理效率?6个策略
- 2025-01-10WBS实战指南:如何一步步构建高效项目管理框架?