Below I created two tables comparing the different Java collection types. It is mainly relevant with regards to 1Z0-819.

The first table is about characteristics, the second about implemented interfaces.

  ArrayList LinkedList HashSet TreeSet HashMap TreeMap
resizable ✅ ✅ ✅ ✅ ✅ ✅
duplicates allowed ✅ ✅     ✅
(not keys)
✅
(not keys)
access by index ✅ ✅        
auto-sorted       ✅   ✅
fixed order ✅ ✅        
synchronized            
null allowed ✅ ✅ ✅
just 1
  ✅
(1 as key, multiple as value)
✅
(only value, not key)
excels at add/remove/ contains stack operations add/remove/ contains find first, last,
range queries,
closest elements
get, put, lookup,
large collections
finding first, next, range queries,
closest element, large collections,
case-insensitive key comparisons

-

  ArrayList LinkedList HashSet TreeSet HashMap TreeMap
Serializable ✅ ✅ ✅ ✅ ✅ ✅
Clonable ✅ ✅ ✅ ✅ ✅ ✅
Iterable ✅ ✅ ✅ ✅    
Collection ✅ ✅ ✅ ✅    
List ✅ ✅        
RandomAccess ✅          
Deque   ✅        
Queue   ✅        
Set     ✅ ✅    
NavigableSet       ✅    
SortedSet       ✅    
Map<K,V>         ✅ ✅
NavigableMap<K,V>           ✅
SortedMap<K,V>           ✅

<
Previous Post
LinkedList and more
>
Next Post
Functional interfaces and lambda expressions