ListIterator接口

1、掌握ListIterator 与 Iterator 接口的关系及区别

2、掌握ListIterator 接口的使用限制


ListIterator接口
 

虽然此接口可以进行双向输出,但是遗憾的是 Collection 接口中并没有定义可以为此类实例化的操作,只有List 接口中才存在了ListIterator 接口的实例化操作。

范例:完成双向输出

import java.util.ArrayList ;
import java.util.List ;
import java.util.ListIterator ;
public class ListIteratorDemo1{
	public static void main(String argsp[]){
		List<String> all = new ArrayList<String>() ;
		all.add("hello") ;
		all.add("_") ;
		all.add("world") ;
		ListIterator<String> iter = all.listIterator() ;
		System.out.print("由前向后输出:") ;
		while(iter.hasNext()){
			String str = iter.next() ;
			System.out.print(str + "、") ;
		}
		System.out.print("\n由后向前输出:") ;
		while(iter.hasPrevious()){
			String str = iter.previous() ;
			System.out.print(str + "、") ;
		}
	}
}

 输出结果:

由前向后输出:hello、_、world、
由后向前输出:world、_、hello、

 此时,已经完成了双向的输出操作。但是,在使用此操作的时候一定要注意一点:一定要先进行由前向后输出,之后才能进行由后向前的输出。

 

例二:使用ListIterator 还可以进行增加及替换元素add()、set()

import java.util.ArrayList ;
import java.util.List ;
import java.util.ListIterator ;
public class ListIteratorDemo02{
	public static void main(String argsp[]){
		List<String> all = new ArrayList<String>() ;
		all.add("hello") ;
		all.add("_") ;
		all.add("world") ;
		ListIterator<String> iter = all.listIterator() ;
		System.out.print("由前向后输出:") ;
		while(iter.hasNext()){
			String str = iter.next() ;
			System.out.print(str + "、") ;
			iter.set("LI - " + str) ;	// 修改内容
		}
		System.out.print("\n由后向前输出:") ;
		iter.add("LXH");
		while(iter.hasPrevious()){
			String str = iter.previous() ;
			System.out.print(str + "、") ;
		}
	}
};

 输出结果:

由前向后输出:hello、_、world、
由后向前输出:LXH、LI - world、LI - _、LI - hello、

 

总结:

1、如果要想使用ListIterator 则只能依靠List 接口完成

2、如果要进行由后向前的输出,则只能先进行由前向后的输出

3、对于此接口中的增加及修改操作了解即可

你可能感兴趣的:(iterator)