- lists
- ordered
- operations happen at a particular index
- grow/shrink to accommodate add/remove actions
List<T>extendsCollection<T>andIterable<T>
- collections
- unordered
- have size limits
- can be equal to each other even if the order of the elements is different
Collection<T>extendsIterable<T>
ListIterator<T>- extends
Iterator<T> - adds
hasPrevious(),next/previousIndex(), etc. - can be initialized at specific indexes
- extends
- this is when Java automatically converts primitive types into their
Object/wrapper types - example where this would be needed: when adding an
intto anArrayList<Integer> - primitive -> object is "boxing"
- object -> primitive is "unboxing"