import java.util.*; public class Clarity2 { static private LinkedList list; public static void main(String[] args) { list = new LinkedList(); list.add("A"); list.add("B"); list.add("C"); list.add("D"); printList(); // Think of an iterator as placing a cursor between items, so we know // where we are. The "cursor" actually is kind of like a pointer to // the item it's in front of ListIterator iter = list.listIterator(); // |ABCD iter.next(); // A|BCD iter.next(); // AB|CD iter.add("X"); // ABX|CD iter.add("Y"); // ABXY|CD printList(); // Now, what if we try this? iter.previous(); // must call next() or previous() before // attempting remove() iter.remove(); // will now be: ABXCD printList(); iter.previous(); iter.remove(); // will now be: ABCD printList(); iter.next(); iter.remove(); // will now be: ABD printList(); } public static void printList() { System.out.println("The list: "); ListIterator iterator = list.listIterator(); while (iterator.hasNext()) System.out.print(iterator.next()); System.out.print("\n\n"); } }