实现Iterator接口

public class DataStructure {

// Create an array
private final static int SIZE = 15;
private int[] arrayOfInts = new int[SIZE];

public DataStructure() {
    // fill the array with ascending integer values
    for (int i = 0; i < SIZE; i++) {
        arrayOfInts[i] = i;
    }
}

public void printEven() {

    // Print out values of even indices of the array
    DataStructureIterator iterator = this.new EvenIterator();
    while (iterator.hasNext()) {
        System.out.print(iterator.next() + " ");
    }
    System.out.println();
}

interface DataStructureIterator extends java.util.Iterator {
}

// Inner class implements the DataStructureIterator interface,
// which extends the Iterator interface

private class EvenIterator implements DataStructureIterator {

    // Start stepping through the array from the beginning
    private int nextIndex = 0;

    public boolean hasNext() {

        // Check if the current element is the last in the array
        return (nextIndex <= SIZE - 1);
    }

    public Integer next() {

        // Record a value of an even index of the array
        Integer retValue = Integer.valueOf(arrayOfInts[nextIndex]);

        // Get the next even element
        nextIndex += 2;
        return retValue;
    }
}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    // Fill the array with integer values and print out only
    // values of even indices
    DataStructure ds = new DataStructure();
    ds.printEven();
}

}
Console:
0 2 4 6 8 10 12 14

你可能感兴趣的:(实现Iterator接口)