Клас ArrayList розширює AbstractList, втілює інтерфейс List і підтримує динамічні (змінювані за розміром) масиви.

Стандартні масиви Java мають фіксовану довжину. Після створення масивів вони не можуть зростати або зменшуватися. Це означає, що потрібно заздалегідь знати, яку найбільшу кількість значеннь потрібно зберігати у ньому.

Списки масивів ArrayList створюють з початковим розміром. Коли цей розмір перевищено, довжину автоматично збільшують. Коли видаляють об'єкти, довжину буде скорочено.

Конструктори ArrayList Методи ArrayList
(додатково до методів, успадкованих від батьківських класів) Див. приклад коду
package work;
import java.util.*;
public class Work
{ public static void main(String args[])
  { ArrayList<String> a = new ArrayList<String>();
    System.out.println("Початковий розмір " + a.size());
    a.add("B");
    a.add("C");
    a.add("D");
    a.add(0,"A");
    System.out.println("Після наповнення розмір "+a+" cкладає " + a.size());
    a.remove("B");
    a.remove(1);
    System.out.println("Після видалення розмір "+a+" cкладає " + a.size());
  }
}
з таким виведенням.
Початковий розмір 0
Після наповнення розмір [A, B, C, D] cкладає 4
Після видалення розмір [A, D] cкладає 2