Collections Comparison Table
Collections Comparison Table
Set<String> set = new Queue<String> queue = new Map<String, Integer> map = new
Syntax for Creation List<String> list = new ArrayList<>();
HashSet<>(); LinkedList<>(); HashMap<>();
HashMap, TreeMap,
ArrayList, LinkedList, Vector, HashSet, TreeSet,
Common Implementations PriorityQueue, ArrayDeque LinkedHashMap,
CopyOnWriteArrayList LinkedHashSet
ConcurrentHashMap
Ordering Ordered (by index) Unordered Depends on implementation Unordered (by key)
Not allowed (Duplicate keys are
Duplicates Allowed Not allowed Allowed
overwritten)
Allowed (Single null key, multiple
Null Values Allowed Doesn't affect uniqueness Allowed
null values)
add(element),
get(index), add(element), put(key, value), get(key),
Access Methods remove(element), offer(element), poll(), peek()
remove(index) remove(key)
contains(element)
Set<K> keySet(), Collection<V>
Iterator Iterator<E> iterator(), listIterator() Iterator<E> iterator() Iterator<E> iterator() values(), Set<Map.Entry<K, V>>
entrySet()
Synchronization Not synchronized Not synchronized Not synchronized Synchronized or lock striping
- Fast for retrieval (HashMap)<br>-
- Fast for basic - Efficient for adding/removing
- Fast for access by index<br>- Maintains order
Performance operations<br>- Slower for elements<br>- Slower for access
Slower for insertions/deletions (LinkedHashMap)<br>- Sorted by
TreeSet due to sorting by index
keys (TreeMap)
- When uniqueness of - Modeling real-world scenarios - Associating keys with values<br>-
- When the order of elements
elements is required<br>- like tasks, jobs, etc.<br>- Fast retrieval based on keys<br>-
Common Use Cases matters<br>- When frequent access
When order doesn't matter Implementing scheduling Maintaining sorted key-value pairs
by index is required
and faster lookup is needed algorithms (TreeMap)
set.add("element");<br>bool map.put("key", value);<br>String
queue.offer("element");<br>Strin
list.add("element");<br>String value ean contains = value =
Example Syntaxes g head = queue.peek();<br>String
= list.get(0);<br>list.remove(2); set.contains("element");<br> map.get("key");<br>map.remove("k
removed = queue.poll();
set.remove("element"); ey");
Lists: