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、
    

      

  • 相关阅读:
    37. Sudoku Solver(js)
    36. Valid Sudoku(js)
    35. Search Insert Position(js)
    34. Find First and Last Position of Element in Sorted Array(js)
    33. Search in Rotated Sorted Array(js)
    32. Longest Valid Parentheses(js)
    函数的柯里化
    俞敏洪:我和马云就差了8个字
    vue路由传值params和query的区别
    简述vuex的数据传递流程
  • 原文地址:https://www.cnblogs.com/achengmu/p/7482779.html
Copyright © 2011-2022 走看看