ListIterator和Iterator区别

2015-03-24  本文已影响292人  lintong

在使用java集合的时候,都需要使用Iterator。但是java集合中还有一个迭代器ListIterator,在使用List、ArrayList、LinkedList和Vector的时候可以使用。这两种迭代器有什么区别呢?下面我们详细分析。这里有一点需要明确的时候,迭代器指向的位置是元素之前的位置,如下图所示:


这里假设集合List由四个元素List1、List2、List3和List4组成,当使用语句Iterator it = List.Iterator()时,迭代器it指向的位置是上图中Iterator1指向的位置,当执行语句it.next()之后,迭代器指向的位置后移到上图Iterator2所指向的位置。
首先看一下Iterator和ListIterator迭代器的方法有哪些。

Iterator迭代器包含的方法有:

ListIterator迭代器包含的方法有:

一.相同点

都是迭代器,当需要对集合中元素进行遍历不需要干涉其遍历过程时,这两种迭代器都可以使用。

二.不同点

三:Iterator和ListIterator用法示例

ListIterator用法:

package com.collection;  
  
import java.util.LinkedList;  
import java.util.List;  
import java.util.ListIterator;  
  
/** 
 * @author 朱伟 
 * 链表中ListIterator测试 
 * 
 */  
public class ListIteratorTest {  
  
    public static void main(String[] args) {  
        // TODO Auto-generated method stub  
        List<String> staff = new LinkedList<>();  
        staff.add("zhuwei");  
        staff.add("xuezhangbin");  
        staff.add("taozhiwei");  
        ListIterator<String> iter = staff.listIterator();  
        String first = iter.next();  
          
        //删除zhuwei  
        iter.remove();  
          
        //把zhuwei改为simei  
        //iter.set("simei");  
        System.out.println("first:"+first);  
          
        iter.add("xiaobai");  
          
        //遍历List元素  
        System.out.println("遍历List中元素,方法一:");  
        for(String str : staff)  
            System.out.println(str+"   ");  
          
        iter = staff.listIterator();  
        System.out.println("遍历List中元素,方法二:");  
        while(iter.hasNext())  
        {  
            System.out.println(iter.next());  
        }  
    }  
}  
上一篇下一篇

猜你喜欢

热点阅读