在java的类集中集合输出有以下四种方式:
Iterator,ListIterator,foreach,Enumeration,只要碰到集合的输出,就是用Iterator接口。
一,Iterator即可
Iterator表示迭代接口,接口中定义的方法如下:
public boolean hasNext():将指针向下移动,判断是否还有内容
public E next():取出当前指针位置的内容
public void remove():删除当前指针位置的内容
如果要想为Iterator接口实例化,则必须是用Collection接口的如下方法:
public Iterator<T> iterator()
import java.util.*;
public class IteratorDemo {
public static void main(String args[])
{
List<String> alist=new ArrayList<String>();
alist.add("A");
alist.add("B");
alist.add("C");
alist.add("D");
alist.add("E");
Iterator<String> iter=alist.iterator();
while(iter.hasNext())
{
String str=iter.next();
if("C".equals(str))
{
iter.remove();
}
System.out.println(iter.next()+"\\");
}
}
}
当alist.iterator()实例化Iterator后,如果是用了集合的删除,那么就会破坏整个集合的内容。
二,ListIterator
ListIterator是Iterator接口的子接口,Iterator接口的最大特点是能从前向后迭代,如果现在要想执行双向的输出,则只能使用ListIterator接口,但是此接口使用时,只能输出List接口的内容。
public void add(E e):增加数据
public boolean hasNext():向下移动指针
public E next():取出当前数据
public void remove():删除当前数据
public boolean hasPrevious():判断是否有前一个元素
public E previous():取出前一个元素
public void set(E e):修改元素内容
如果是用ListIterator实现双向输出则必须先执行由前向后输出,ListIterator可以增加及修改数据