Declarando um ArrayList

O ArrayList implementa List<>. Ele é, portanto, um array e uma lista. :)

Nós podemos usar no Array, propriedades específicas da lista, por exemplo:

import java.util.ArrayList;
import java.util.List;

List<String> nomesArrayList = new ArrayList<>();
// iniciamos essa List com o ArrayList. (Tipo mais concreto).

Atualizado