通常希望依次访问集合中的元素。处理这个问题的最简单的方法是使用迭代器,迭代器是一个实现Iterator或者实现ListIterator接口的对象。Iterator可以遍历集合中的元素,从而获得或删除元素,ListIterator继承自Iterator,允许双向遍历列表,并且可以修改。
通过迭代器接口访问类集之前,必须得到一个迭代对象。每一个Collection类都提供一个iterator()函数,该函数返回一个类集的迭代器,通过使用这个迭代器,可以访问类集中的每一个元素,一次一个元素。
步骤如下:
1.通过调用类集的iterator()方法获得类集的迭代器。
2.建立一个含有hasNext()方法的循环,只要hasNext()返回true,就进行循环迭代。
3.在循环内部,通过调用next()方法来得到每一个元素。
Iterator接口的使用
import java.util.ArrayList;
import java.util.Iterator;
import java.util.ListIterator;
public class IteratorDemo {
public static void main(String[] args) {
ArrayList a1=new ArrayList();
a1.add("A");
a1.add("B");
a1.add("C");
a1.add("E");
a1.add("F");
System.out.print("原列表内容");
Iterator iterator=a1.iterator();
while(iterator.hasNext())
{
Object element=iterator.next();
System.out.print(element+" ");
}
System.out.println();
ListIterator listIterator=a1.listIterator();
while(listIterator.hasNext())
{
Object element=listIterator.next();
listIterator.set(element+"++");
}
System.out.print("修改后前向遍历列表");
iterator=a1.iterator();
while(iterator.hasNext())
{
Object element=iterator.next();
System.out.print(element+" ");
}
System.out.println();
System.out.print("修改后后向遍历列表");
while(listIterator.hasPrevious())
{
Object element=listIterator.previous();
System.out.print(element+" ");
}
System.out.println();
}
}
原列表内容A B C E F
修改后前向遍历列表A++ B++ C++ E++ F++
修改后后向遍历列表F++ E++ C++ B++ A++