zoukankan      html  css  js  c++  java
  • Java迭代器注意事项

    java迭代器是用来遍历集合的

    Iterator迭代器:

    1.它是一个接口,是不能实例化的。

    只能接收集合类对象调用自己的iterator方法来生成的Iterator对象

    2.迭代器Iterator有3个方法

    boolean hasNext()如果仍有元素可以迭代(用来判断当前指针指向的下一位置是否还有元素),有返回true

    E next() 返回迭代的下一个元素(指针指向下一位置,并返回指向的元素)

           void  remove()删除当前迭代的元素

    3. 用来遍历集合时,需要hasNext()方法和next()方法配合使用

    4.在遍历的过程中,不允许对集合进行增删操作。如果想要对集合进行删除操作,也必须调用迭代器的remove()方法



    代码演示:

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class iterator {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		List list=new ArrayList();//创建一个线性表   这里运用多态
    		list.add("one");
    		list.add("#");
    		list.add("two");
    		list.add("#");
    		list.add("three");
    		list.add("#");
    		
    		Iterator it=list.iterator();//返回线性表的迭代器
    		while(it.hasNext())   //遍历线性表 ,先检查是否还有元素可以迭代  
    		{
    			String element=(String) it.next();//取出迭代的元素
    			if("#".equals(element))//如果元素=="#",则删除
    			{
    				it.remove();//true
    				//<span style="color:#ff0000;">list.remove(element);//Error</span>
    			}
    			System.out.println(element);
    		}
    		System.out.println(list);
    	}
    
    }

    结果

    one
    #
    two
    #
    three
    #
    [one, two, three]
    

    ListIterator迭代器:

    ListIterator允许对于容器中的元素进行双向遍历,而Iterator是单向的。

           它的方法有

    hasPrevious()   hasNext()
    previous()        next()
    nextPrevious() nextIndex() 
    remove()         add()
    set()




  • 相关阅读:
    头插法链表的基本操作:创建空链表,插入结点,遍历链表,求链表长度,查找结点,删除结点
    尾插法链表拆分
    头插法链表拆分
    尾插法创建链表
    头插法创建链表
    二维数组45度反斜线扫描分析。
    [LeetCode] Binary Search Tree Iterator | 二叉查找树迭代器
    只用递归翻转栈
    [LeetCode] Wiggle Sort II | 摆动排序
    今天回归刷题的日子
  • 原文地址:https://www.cnblogs.com/chenny3/p/10226237.html
Copyright © 2011-2022 走看看