zoukankan      html  css  js  c++  java
  • 如何边遍历集合边删除元素--使用Iterator中的remove()方法

    在遍历集合时,想将符合条件的某些元素删除,开始是用了下面的方法

     
    1. public static void main(String[] args) throws UnsupportedEncodingException {  
    2.     List<String> list = new ArrayList<String>();  
    3.     list.add("abc");  
    4.     list.add("bbc");  
    5.     list.add("cbc");  
    6.     Iterator<String> it = list.iterator();  
    7.     while(it.hasNext()){  
    8.         String str = it.next();  
    9.         System.out.println(str);  
    10.         if(str.equals("abc")){  
    11.             list.remove(str);  
    12.         }  
    13.      }  
    14.     }  


    结果报下面的异常

    Exception in thread "main" Java.util.ConcurrentModificationException
        at java.util.AbstractList$Itr.checkForComodification(Unknown Source)
        at java.util.AbstractList$Itr.next(Unknown Source)
        at junit.Test.main(Test.java:23)

    查了下,原来java中的集合边遍历边删除是需要使用迭代器中的方法的,改为下面

    1. public static void main(String[] args) throws UnsupportedEncodingException {
      List<String> list = new ArrayList<String>();
      list.add("abc");
      list.add("bbc");
      list.add("cbc");
      Iterator<String> it = list.iterator();
      while(it.hasNext()){
      String str = it.next();
      System.out.println(str);
      if(str.equals("abc")){
      it.remove();
      }
      }

      System.out.println(list.size());
      }

    问题解决

  • 相关阅读:
    Linux学习笔记:常用100条命令(三)
    Linux学习笔记:常用100条命令(二)
    k8s的imagePullSecrets如何生成及使用
    Jenkins基于https的k8s配置
    ubuntu supervisor管理uwsgi+nginx
    ubuntu Django + Uwsgi + Nginx 的生产环境部署
    ubuntu 安装和配置 GitLab
    ubuntu 安装harbor仓库
    ubuntu 安装Jenkins
    php过滤html标签截取部分内容
  • 原文地址:https://www.cnblogs.com/wlhebut/p/6419066.html
Copyright © 2011-2022 走看看