GlueList
*
"a" number of created nodes.
"b" size of node array.
*
get(int index) is O(1) ~ O(a)
add(E element) is O(1) ~ O(a*b)
add(int index, E element) is O(1) ~ O(a*b)
remove(int index) is O(1) ~ O(a*b)
Iterator.remove() is O(1) ~ O(a*b)
ListIterator.add(E element) is O(1) ~ O(a*b)
LinkedList
get(int index) is O(n)
add(E element) is O(1)
add(int index, E element) is O(n)
remove(int index) is O(n)
Iterator.remove() is O(1)
ListIterator.add(E element) is O(1)
ArrayList
get(int index) is O(1)
add(E element) is O(1) amortized, but O(n) worst-case since the array must be resized and copied
add(int index, E element) is O(n - index) amortized, but O(n) worst-case (as above)
remove(int index) is O(n - index) (i.e. removing last is O(1))