我是靠谱客的博主 完美招牌,最近开发中收集的这篇文章主要介绍ArrayList遍历的同时删除,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

方法一

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);  
ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("two");
list.add("two");
list.add("two");
for(int i=0;i<list.size();i++){
if(list.get(i).equals("two")){
list.remove(i);
}
}
System.out.println(list);

 结果:

Java代码 复制代码  收藏代码
  1. [one, two, two]  
[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);  

ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("two");
list.add("two");
list.add("two");
for(String s:list){
if(s.equals("two")){
list.remove(s);
}
}
System.out.println(list);

 

结果:

Java代码 复制代码  收藏代码
  1. Exception in thread "main" java.util.ConcurrentModificationException   
  2.     at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)   
  3.     at java.util.AbstractList$Itr.next(AbstractList.java:343)   
  4.     at Test.main(Test.java:22)  
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
at java.util.AbstractList$Itr.next(AbstractList.java:343)
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);  

ArrayList<String> list = new ArrayList<String>();
list.add("one");
list.add("two");
list.add("two");
list.add("two");
list.add("two");
Iterator<String> iter = list.iterator();
while(iter.hasNext()){
String s = iter.next();
if(s.equals("two")){
iter.remove();
}
}
System.out.println(list);

结果:

Java代码 复制代码  收藏代码
  1. [one]  
[one]

 

结论:

删除还是用迭代器的比较好,其它的都会有问题.

 

 

最后

以上就是完美招牌为你收集整理的ArrayList遍历的同时删除的全部内容,希望文章能够帮你解决ArrayList遍历的同时删除所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部