ListIterator
List<String> names = new LinkedList<String>();
names.add("Yoda");
ListIterator<String> iter = names.listIterator();
System.out.println(iter.next()); // prints "Yoda"
System.out.println(iter.previous()); // prints "Yoda"
iter.add("Anakin");
System.out.println(iter.previous()); // prints "Anakin"
System.out.println(iter.next()); // prints "Anakin"
System.out.println(iter.next()); // prints "Yoda"
iter.set("Obi-wan");
System.out.println(iter.previous()); // prints "Obi-wan"
iter.remove();
System.out.println(iter.previous()); // prints "Anakin"