📄 iteratordemo.java
字号:
package iterator和listiterator;
/**
使用迭代函数
在通过迭代函数访问类集之前,必须得到一个迭代函数。每一个Collection类都提供一
个iterator( )函数,该函数返回一个对类集头的迭代函数。通过使用这个迭代函数对象,可
以访问类集中的每一个元素,一次一个元素。通常,使用迭代函数循环通过类集的内容,
步骤如下:
1. 通过调用类集的iterator( )方法获得对类集头的迭代函数。
2. 建立一个调用hasNext( )方法的循环,只要hasNext( )返回true,就进行循环迭代。
3. 在循环内部,通过调用next( )方法来得到每一个元素。
对于执行List的类集,也可以通过调用ListIterator来获得迭代函数。正如上面解释的那
样,列表迭代函数提供了前向或后向访问类集的能力,并可让你修改元素。否则,ListIterator
如同Iterator功能一样。
这里是一个实现这些步骤的例子,说明了Iterator和ListIterator。它使用ArrayList对象,
但是总的原则适用于任何类型的类集。当然,ListIterator只适用于那些实现List接口的类集。
程序的输出如下所示:
Original contents of al: C A E B D F
Modified contents of al: C+ A+ E+ B+ D+ F+
Modified list backwards: F+ D+ B+ E+ A+ C+
特别值得注意的是:列表是如何被反向显示的。在列表被修改之后,litr指向列表的末
端(记住,当到达列表末端时,litr.hasNext( )方法返回false)。为了以反向遍历列表,程序
继续使用litr,但这一次,程序检测它是否有前一个元素。只要它有前一个元素,该元素就
被获得并被显示出来。
*/
// Demonstrate iterators.
import java.util.*;
class IteratorDemo {
public static void main(String args[]) {
// create an array list
ArrayList al = new ArrayList();
// add elements to the array list
al.add("C");
al.add("A");
al.add("E");
al.add("B");
al.add("D");
al.add("F");
// use iterator to display contents of al
System.out.print("Original contents of al: ");
Iterator itr = al.iterator();
while (itr.hasNext()) {
Object element = itr.next();
System.out.print(element + " ");
}
System.out.println();
// modify objects being iterated
ListIterator litr = al.listIterator();
while (litr.hasNext()) {
Object element = litr.next();
litr.set(element + "+");
}
System.out.print("Modified contents of al: ");
itr = al.iterator();
while (itr.hasNext()) {
Object element = itr.next();
System.out.print(element + " ");
}
System.out.println();
// now, display the list backwards
System.out.print("Modified list backwards: ");
while (litr.hasPrevious()) {
Object element = litr.previous();
System.out.print(element + " ");
}
System.out.println();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -