// File: GenericList.java // // Author: Rahul Simha // Created: Sept 21, 1998 // // The Generic list code, all by itself. // A node that contains any "Object" class ListItem { Object data = null; // The universal Object. ListItem next = null; // Constructor. public ListItem (Object obj) { data = obj; next = null; } // Accessor. public Object getData () { return data; } } // Linked list class - also a dynamic class. public class GenericList { ListItem front = null; ListItem rear = null; int numItems = 0; // Current number of items. // Instance method to add a data item. public void addData (Object obj) { if (front == null) { front = new ListItem (obj); rear = front; } else { rear.next = new ListItem (obj); rear = rear.next; } numItems++; } public void printList () { ListItem listPtr = front; System.out.println ("List: (" + numItems + " items)"); int i = 1; while (listPtr != null) { System.out.println ("Item# " + i + ": " + listPtr.getData()); // Must implement toString() i++; listPtr = listPtr.next; } } ListItem enumPtr = null; // Start an enumeration. public void startEnumeration () { enumPtr = front; } public boolean hasMoreElements() { if (enumPtr == null) return false; else return true; } public Object getNextElement() { Object obj = enumPtr.data; enumPtr = enumPtr.next; return obj; } } // End of class "LinkedList"