Научился: ArrayList - автоматически расширяемый массив. Вы можете работать с массивом, но при этом не использовать квадратные скобки. Трудности: в Java массивы имеют фиксированную длину, и после того как массив создан, он не может расти или уменьшаться. ArrayList может менять свой размер во время исполнения программы, при этом не обязательно указывать размерность при создании объекта. Элементы ArrayList могут быть абсолютно любых типов в том числе и null.