zoukankan      html  css  js  c++  java
  • java:集合输出之Iterator和ListIterator二

    java:集合输出之Iterator和ListIterator二

    ListIterator是Iterator的子接口,Iterator的最大特点是,能向前,或向后迭代。如果现在要想双向输出的话,则只能使用ListIterator接口,此接口有一个要求,即只能输出List接口里面的内容。因此用到public ListIterator<E> extends Iterator<E>:

    add(E e): 增加数据

    boolean hasNext(); 继承Iterator ,下一个元素是否存在,

    next(); 继承Iterator,获取下一个元素内容

    previous();继承Iterator,获取上一个元素内容

    remove();删除 下一个或上一个元素

    set(E e);用指定元素替换下一个或上一个元素内容;

    	// TODO 自动生成的方法存根
    		
    		List<String> allList = new ArrayList<String>();
    		allList.add("A");
    		allList.add("B");
    		allList.add("C");
    		allList.add("D");
    		allList.add("E");
    		
    		ListIterator<String> iter =  allList.listIterator();
    		System.out.println("向前输出");
    		while(iter.hasNext())
    		{
    			//向前输出
    			System.out.println(iter.next() + "、");
    			
    		}
    		//向后输出
    		System.out.println("向后输出");
    		while(iter.hasPrevious())
    		{
    			System.out.println(iter.previous());
    		}
    

      

    输出结果:

    向前输出
    A、
    B、
    C、
    D、
    E、
    向后输出
    E
    D
    C
    B
    A
    

      

    如果想要双向输出,则首先一定要保证先执行由前向后的输出操作。单独执行向后输出,是没有内容输出的。

    在使用ListIterator接口的时候,还有最大一个特点,可以增加修改数据。

    List<String> allList = new ArrayList<String>();
    		allList.add("A");
    		allList.add("B");
    		allList.add("C");
    		allList.add("D");
    		allList.add("E");
    		
    		ListIterator<String> iter =  allList.listIterator();
    		
    		//增加数据,此方法只有由前向后输出才有新增加的值
    		iter.add("X");
    		
    		System.out.println("向前输出");
    		while(iter.hasNext())
    		{
    			//再此修改的数据,也只有由前向后输出的内容才有
    			String str = iter.next();
    			iter.set(str + " - drw");
    			//向前输出
    			System.out.print( str + "、");
    			
    		}
    		//向后输出
    		System.out.println("
    向后输出");
    		while(iter.hasPrevious())
    			
    		{
    			System.out.print(iter.previous()+"、");
    		}
    

      结果为:

    向前输出
    A、B、C、D、E、
    向后输出
    E - drw、D - drw、C - drw、B - drw、A - drw、X、
    

      

  • 相关阅读:
    详解 exception
    如何转换音频数据格式1
    解说一个简单的Win32程序
    java通过jxl.jar实现excel导入导出
    linux2.6.32在mini2440开发板上移植(8)之添加ADC驱动程序
    Hut 1997 Seven tombs
    python help dir stackoverflow docs google遇到python问题怎么样解决
    802.11n兼容a/b/g问题(Legacy mode,Mixed mode,Greenfield mode)
    gperf的使用
    ubuntu terminal 关闭防火墙
  • 原文地址:https://www.cnblogs.com/achengmu/p/7482779.html
Copyright © 2011-2022 走看看