Collections
- ▸ collections Fail-fast vs fail-safe iteratorsFREE
- ▸ collections HashSet vs TreeSet vs LinkedHashSetFREE
- ▸ collections Iterator vs ListIterator vs SpliteratorFREE
- ▸ collections What happens inside HashMap.put()?FREE
- ▸ collections ArrayList vs LinkedList — which one when?FREE
- ▸ collections Inside ConcurrentHashMap — from segments to per-bin locking
- ▸ collections CopyOnWriteArrayList — when copy-on-write pays off
- ▸ collections TreeMap — red-black trees and the navigation methods
- ▸ collections Comparable vs Comparator — and chaining comparators
- ▸ collections Queue, Deque and Stack — and why ArrayDeque usually wins
- ▸ collections computeIfAbsent, merge and getOrDefault — the Java 8 Map methods
- ▸ collections HashMap vs Hashtable vs ConcurrentHashMap
- ▸ collections EnumMap and EnumSet — why special collections for enums?
- ▸ collections WeakHashMap and IdentityHashMap — when you'd use them
- ▸ collections PriorityQueue — the heap underneath and its gotchas
- ▸ collections ConcurrentModificationException — causes and safe removal
- ▸ collections The collections family tree — and why Map isn't a Collection
- ▸ collections How ArrayList grows — capacity, resizing and amortised cost
- ▸ collections Why Vector, Stack and Hashtable count as legacy
- ▸ collections HashMap sizing — why 0.75 and why powers of two
- ▸ collections LinkedHashMap — insertion vs access order, and an LRU cache in a few lines
- ▸ collections ConcurrentSkipListMap — sorted and concurrent
- ▸ collections Why ConcurrentHashMap refuses null keys and values
- ▸ collections ConcurrentHashMap's atomic compute and merge methods
- ▸ collections List.of vs unmodifiableList vs copyOf — truly immutable collections
- ▸ collections Arrays.asList — the fixed-size list surprise
- ▸ collections Mutable keys in a HashMap — how entries get lost
- ▸ collections The Collections utility class — sort, binarySearch and synchronized wrappers
- ▸ collections Choosing the right collection — a decision guide