A list that can grow
An array has a fixed size. An ArrayList is a resizable list: it starts empty and grows as you add items (and shrinks as you remove them). You say what type it holds in angle brackets, like ArrayList<String>, create it with new, and add with add(...). size() tells you how many items it holds.