How ArrayList and HashMap work inside, by building your own. A list on top of an array that grows, with add, get, indexOf, contains and remove; a generic version made with (T[]) new Object[...]; a hash map with an array of buckets, hash codes, collisions, updates, removing and growing; and why its lookups stay fast. MOOC section 12.2.