Collection TypeImplements/Extends Ordered? Allows Duplicates? Allows Null? Thread-Safe?
Use Case
ArrayList List Yes (Insertion Order) Yes Yes (One Null) When
No you need a dynamic arra
LinkedList List, Deque Yes (Insertion Order) Yes Yes No
Fast insertions/deletions; use
Vector List Yes (Insertion Order) Yes Yes YesLegacy thread-safe dynamic
Stack Vector Yes (LIFO) Yes Yes Yes
When you need LIFO (Last In F
HashSet Set No No Yes (One Null) No
To store unique elements with
LinkedHashSet HashSet Yes (Insertion Order) No Yes (One Null) When
No you need uniqueness and
TreeSet NavigableSet (SortedSet)
Yes (Sorted Order) No No (Throws NPE) No
Sorted unique elements (natur
HashMap Map No Keys: No, Keys:
Values:
One
YesNull, Values: Multiple Nu...
NoFast lookup using key-value
LinkedHashMap HashMap Yes (Insertion Order)
Keys: No, Keys:
Values:
One
YesNull, Values: Multiple Nu...
NoMaintains order of insertion fo
TreeMapNavigableMap (SortedMap)
Yes (Sorted by Key)
Keys: No, Values: Yes No (for keys) No Sorted key-value pairs
Hashtable Map No Keys: No, Values: Yes No Yes Legacy thread-safe map
ConcurrentHashMap Map No Keys: No, Values: Yes No Yes
Thread-safe map for concurren
PriorityQueue Queue Yes (Priority Order) Yes No No
Elements are ordered based on