• java集合迭代器


    java集合迭代器

    采用迭代器遍历方式遍历集合,如果要在遍历过程中添加或者删除元素,如下代码所示:

     1 package MyIterator;
     2 
     3 import java.util.ArrayList;
     4 import java.util.Collection;
     5 import java.util.Iterator;
     6 
     7 public class Test {
     8     public static void main(String[] args) {
     9         //创建集合类
    10         Collection <String>c=new ArrayList <String>();
    11         c.add("hello");
    12         c.add("word");
    13         c.add("java");
    14         c.add("hahaha");
    15         //获取迭代器对象
    16         Iterator<String> it=c.iterator();
    17         while(it.hasNext()) {
    18             String s=it.next();
    19             if(s.equals("java")) c.add("这样做不对");
    20             System.out.println(s);
    21         }
    22     }
    23 }

    运行抛出并发修改异常:Exception in thread "main" java.util.ConcurrentModificationException

    解决方案:使用迭代器进行修改

     1 package MyIterator;
     2 import java.util.ArrayList;
     3 import java.util.List;
     4 import java.util.ListIterator;
     5 
     6 public class Test {
     7     public static void main(String[] args) {
     8         //创建集合类
     9         //Collection <String>c=new ArrayList <String>();
    10         List <String>c=new ArrayList <String>();
    11         c.add("hello");
    12         c.add("word");
    13         c.add("java");
    14         c.add("hahaha");
    15         //获取迭代器对象
    16         ListIterator<String> lit=c.listIterator();
    17         while(lit.hasNext()) {
    18             String s=lit.next();
    19             if(s.equals("java")) 
    20                 lit.add("这就对了");
    21         }
    22         System.out.println(c);
    23     }
    24 }
  • 相关阅读:
    go语言之行--简介与环境搭建
    Django Rest Framework源码剖析(八)-----视图与路由
    基于TLS证书手动部署kubernetes集群(下)
    多线程编程
    Java IO流
    java异常处理
    字符串处理(二)
    字符串处理(一)
    正则表达式(应用)
    集合相关知识
  • 原文地址:https://www.cnblogs.com/hopeyes/p/9715042.html
Copyright © 2020-2023  润新知