• ListIterator的使用


    package cn.lonecloud.Iterator;
    
    import java.util.ArrayList;
    import java.util.ListIterator;
    
    public class myListIterator {
    	public static void main(String[] args) {
    		ArrayList<Integer> list=new ArrayList<Integer>();
    		for (int i = 0; i < 10; i++) {
    			list.add(i);
    		}
    		//列表迭代器继承的接口是Iterator
    		ListIterator<Integer> iterator=list.listIterator();
    		ListIterator<Integer> iterator2=list.listIterator();
    		
    		/**
    		 * Exception in thread "main" java.lang.IllegalStateException
    			at java.util.ArrayList$ListItr.set(ArrayList.java:941)
    			at cn.lonecloud.Iterator.myListIterator.main(myListIterator.java:14)
    			同样会报错,这个类里面的set和remove方法都需要和next()方法相结合使用
    			而且他的会改变的元素就是next()里面返回的元素
    		 */
    		iterator.next();
    		iterator.set(22);//
    		iterator.next();
    		iterator.remove();
    		/**
    		 * Exception in thread "main" java.util.ConcurrentModificationException
    			at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:901)
    			at java.util.ArrayList$Itr.next(ArrayList.java:851)
    			at cn.lonecloud.Iterator.myListIterator.main(myListIterator.java:28)
    			由于改变了list里面的元素,导致这个迭代器混乱了,导致抛出异常
    		 */
    		while (iterator2.hasNext()) {
    			Integer integer = (Integer) iterator2.next();
    			System.out.println(integer);
    			
    		}
    	}
    }	
    

      ListIterator是继承于Iterator的一个接口;

      里面有set方法;

      

  • 相关阅读:
    Linux PHP连接MSSQL
    Curl参数一览
    [android开发必备] Android开发者社区汇总
    android定时器
    一个mysql小技巧
    php empty问题
    周报_2012第16周(2012/04/152012/04/21)
    周报_2012第17周(2012/04/222012/04/28)
    周报_2013第04周(2013/01/202013/01/26)
    周报_2013第01周(2012/12/302012/01/05)
  • 原文地址:https://www.cnblogs.com/lonecloud/p/5494815.html
Copyright © 2020-2023  润新知