// A database of records // // With an iterator import java.util.*; public class Database1 { // One record in the database private class Record { private String lastName; private String firstName; private int ID; private int lastLogin; public Record( String lastName, String firstName, int ID, int lastLogin ) { this.lastName = lastName; this.firstName = firstName; this.ID = ID; this.lastLogin = lastLogin; } public String toString() { return lastName + ", " + firstName + ", " + ID + ", " + lastLogin; } } // Populate the database with some data private Record [] records = new Record[6]; Database1() { records[0] = new Record( "Stewart", "Duncan", 2203245, 100000 ); records[1] = new Record( "MacKenzie", "Colin", 2211171, 100221 ); records[2] = new Record( "Bellotti", "Anne", 2300017, 100300 ); records[3] = new Record( "Chang", "Richard", 2191933, 100354 ); records[4] = new Record( "Erickson", "Thomas", 2203577, 100490 ); records[5] = new Record( "Misfit", "Ima", 2805472, 100532 ); } // Iterator private class DatabaseIterator implements Iterator { int nextIndex; private DatabaseIterator() { nextIndex = 0; } public boolean hasNext() { return (nextIndex < records.length); } public Object next() { if (nextIndex >= records.length) throw new NoSuchElementException(); return records[ nextIndex++ ]; } public void remove() { throw new UnsupportedOperationException(); } } DatabaseIterator createIterator() { return new DatabaseIterator(); } // Testing code public static void main( String [] args ) { Database1 db = new Database1(); DatabaseIterator iter = db.createIterator(); while (iter.hasNext()) System.out.println( iter.next().toString() ); } }