• 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方法;

      

  • 相关阅读:
    Flink实时数仓(数据可视化)
    Hive调优
    面试(涉及技术一)
    启动Flink的yarnsession模式出错
    面试(涉及技术二)
    Filnk实时数仓(DWS层)
    Filnk实时数仓(Clickhouse)
    Filnk实时数仓(Prometheus监控)
    Filnk实时数仓(DWM层)
    Centos7下杀毒软件clamav的安装和使用
  • 原文地址:https://www.cnblogs.com/lonecloud/p/5494815.html
Copyright © 2020-2023  润新知