List - a collection where the elements have a position Two major lists - ArrayList and LinkedList List Interface (java.util) * Part of the Collection API get(index) set(index, newvalue) int indexOf(element) //returns -1 if element not found listIterator(int pos) List Iterator interface: public interface ListIterator extends Iterator{ Boolean hasPrevious(); T previous(); } ArrayList vs LinkedList - ArrayList is great if you consistently add to the end of the list. If not, insertion takes linear (O(n)) time. LinkedList allows for insertion in O(1) time. Knock against LinkedList#1 10 element ArrayList - 320 bits + overhead 10 element LinkedList - 320 bits of data + 320 bits for prev + 320 bits for next + overhead Knock against LinkedList#1.5 - more complicated adding an element: void insert(LinkedListElement e, int i){ LinkedListElement temp; temp = head; //head private to the LinkedList for (int j = 0; j