ArrayList (динамический массив)
Коротко: Список, внутри основанный на массиве, который автоматически растёт (и обычно сам никогда не уменьшается), когда нужно больше места, чем есть сейчас.
Подробнее: Когда внутренний массив заполняется, при следующей вставке автоматически создаётся новый, больший массив, и прежнее содержимое копируется — незаметно для пользователя списка. Так сохраняется быстрый доступ по индексу, как у массива, а размер больше не нужно задавать заранее, как у классического массива. Частая вставка в середину списка, однако, остаётся медленнее.
Подробности
Хитрость динамического массива — в его росте…
См. также: массивы, список, LinkedList