zoukankan      html  css  js  c++  java
  • 列表迭代器 ListIterator

    package com.Test01;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.ListIterator;
    
    /*
            ConcurrentModificationException
     当不允许这样的修改时,可以通过检测到对象的并发修改的方法来抛出此异常。
             */
    public class ListDemo {
        public static void main(String[] args) {
            //创建集合对象
            List<String> list = new ArrayList<String>();
    
            //添加元素
            list.add("hello");
            list.add("world");
            list.add("java");
    
    //        遍历集合
            /*
            Iterator<String> it = list.iterator();
            while (it.hasNext()) {
                String s = it.next();
                if(s.equals("world")) {
                    list.add("javase");
                }
    
            }
    
             */
            /*
            for(int i = 0;i<list.size();i++) {
                String s = list.get(i);
                if(s.equals("world")) {
                    list.add("javaee");
                }
            }
            System.out.println(list);
            */
            ListIterator<String> lit = list.listIterator();
            while (lit.hasNext()) {
                String s = lit.next();
                System.out.println(s);
            }
            System.out.println("-------------");
            while (lit.hasPrevious()) {
                String s = lit.previous();
                System.out.println(s);
    
            }
    
    
        }
    }
    运行结果如下:
    hello
    world
    java
    -------------
    java
    world
    hello

     ListIterator<String> lit = list.listIterator();
    while(lit.hasNext()) {
    String s = lit.next();
    if(s.equals("world")) {
    lit.add("javaee");
    }
    }
    System.out.println(list);

    使用列表迭代器的add方法不会发生并发异常,因为底层将 实际修改次数赋值给了预期修改次数 

  • 相关阅读:
    日积月累--小技巧之四
    深入理解object C中复制对象的用法(二)
    状压dp-poj-1170-Shopping Offers
    linux printk函数学习
    I.MX6 WIFI wireless_tools 移植
    I.MX6 AW-NB177NF WIFI 驱动移植问题
    VS 一些配置设置
    I.MX6 boot from Micro SD
    Android studio 构建太慢
    Android gif 录屏
  • 原文地址:https://www.cnblogs.com/lsswudi/p/11407698.html
Copyright © 2011-2022 走看看