在下面的示例中,创建了一个数组,使用升序的整数初始化它,并打印索引为偶数的数组值。
public class DataStructure {
// 创建一个数组
private final static int SIZE = 15;
private int[] arrayOfInts = new int[SIZE];
public DataStructure() {
// 使用升序整数填充数组
for (int i = 0; i < SIZE; i++) {
arrayOfInts[i] = i;
}
}
public void printEven() {
// 打印数组的偶数索引值
DataStructureIterator iterator = this.new EvenIterator();
while (iterator.hasNext()) {
System.out.print(iterator.next() + " ");
}
System.out.println();
}
interface DataStructureIterator extends java.util.Iterator<Integer> { }
// DataStructureIterator 继承 java.util.Iterator<Integer> 接口
// 内部类 EvenIterator 实现 DataStructureIterator 接口
private class EvenIterator implements DataStructureIterator {
//
private int nextIndex = 0;
public boolean hasNext() {
// 检查当前元素是否为最后一个数组元素
return (nextIndex <= SIZE - 1);
}
public Integer next() {
// 保存数组索引为偶数的值
Integer retValue = Integer.valueOf(arrayOfInts[nextIndex]);
// 获取下一个偶数元素
nextIndex += 2;
return retValue;
}
}
public static void main(String[] args) {
// 用整数值填充数组并打印出数组索引为偶数的值
DataStructure ds = new DataStructure();
ds.printEven();
}
}
输出结果:
0 2 4 6 8 10 12 14
注意:EvenIterator
类直接引用了DataStructure
实例的arrayOfInts
变量。