ArrayList
Ao contrário das matrizes comuns, o   
ArrayList do pacote 
java.util é um array de expansão automática. Ao criar um objeto do tipo 
ArrayList, você não precisa especificar a sua dimensão. Por exemplo,
ArrayList  lista = new ArrayList();
Vantagens ArrayList em comparação com um array regular:
- acesso rápido a elementos por índice em tempo constante 
O(1); 
- acessar elementos por valor em tempo linear 
O(n); 
- permite que você armazene qualquer valor, incluindo 
null. 
Fraquezas ArrayList:
Inserir/remover um elemento  causa a substituição de todos os elementos colocados "à direita" na lista uma posição à esquerda, ou seja, funciona em tempo linear O(n);
Lembre-se que as listas podem conter apenas objetos, portanto, se você deseja armazenar números, use Integer em vez de int. Integer é o nome de uma classe e um objeto dessa classe pode conter um valor inteiro. Você pode ler mais sobre classes e objetos aqui: introdução à programação orientada a objetos.