12 classes · 3 labs · 10 PYQs
Arrays that resize themselves — ArrayList, LinkedList, HashSet, TreeSet, HashMap · iterators · the legacy toolbox (StringTokenizer, BitSet, Date, Calendar, Random, Timer) · and custom sorting with Comparable & Comparator.
THE ROADMAP · C37 → C48
Part M builds lists & sets on a com.vce.library Book spine. Part N runs maps and the legacy utility toolbox on com.vce.carcatalog and a delivery-partner domain. Part O sorts everything your way — Comparable, Comparator, multi-key — on a Spotify-style playlist.
Why arrays weren't enough — the interface family tree, Iterator vs for-each, and fail-fast surprises. (P1·Q7)
The resizable array vs the chain of nodes — costs of get/add/remove, and where the legacy pair still appears.
No duplicates, ever — hashing under the hood, why order vanishes, and how LinkedHashSet buys it back.
Sorted the moment it enters — natural ordering, compareTo, and the Lab 9 runway. (P2·Q6 · P2·Q14b)
The library Book domain at the keyboard — build, iterate, dedupe, sort naturally.
HashMap, LinkedHashMap, TreeMap — put/get/containsKey, entrySet loops, and the car-catalog registry.
The legacy utility trio — splitting CSV rows, flag sets, and reproducible randomness. (P1·Q8 · P2·Q7 · P2·Q8)
Reading the clock the old way — Date's quirks, Calendar's fields, and formatting timestamps for real records.
Scheduling work on a clock — delayed and repeating tasks for the delivery-partner domain. (P1·Q14b · P2·Q14a)
Tokenizers, bit sets, dates and timers — Part N's toolbox, hands-on.
compareTo inside the class vs compare outside it — when each wins, on the playlist domain.
Sort by artist, then by plays, then by title — chaining comparators for real-world orderings. (P1·Q17b)
sort · binarySearch · fill · copyOf · toString — the static toolbox for plain arrays. (P2·Q17b)
Framework map → legacy toolbox → sorting, stitched into one revision sweep, plus the Lab 11 runway.
Multi-key playlist sorting at the keyboard — the unit's capstone.
Part M carries P1·Q7 (framework & iterators) plus P2·Q6 and P2·Q14b (TreeSet & natural ordering). Part N carries P1·Q8, P2·Q7 and P2·Q8 (StringTokenizer / BitSet / Random) plus P1·Q14b and P2·Q14a (Timer & TimerTask). Part O carries P1·Q17b (multi-key Comparator sort) and P2·Q17b (Arrays utility). Every one appears as a stepped model program inside its class.