Need indexed access? → ArrayList
Need fast front/rear add? → ArrayDeque
Need priority ordering? → PriorityQueue
No duplicates, any order? → HashSet
No duplicates, insertion order?→ LinkedHashSet
No duplicates, sorted? → TreeSet
Fast key lookup? → HashMap
Ordered by insertion? → LinkedHashMap
Sorted by key? → TreeMap
Factory Methods (Java 9+)
List<String>list=List.of("a","b","c");// immutableSet<Integer>set=Set.of(1,2,3);// immutable, no duplicatesMap<String,Integer>map=Map.of("a",1,"b",2);// immutable, ≤ 10 entriesMap<String,Integer>big=Map.ofEntries(// immutable, any sizeMap.entry("a",1),Map.entry("b",2));
Source Files
File
What it Demonstrates
ListsAndQueues.java
ArrayList vs LinkedList, ArrayDeque as stack/queue, PriorityQueue