ArrayList ou HashSet?

Boa Tarde Pessoal!

Alguém pode me dizer quais são as vantagens e desvantagens de ArrayList e HashSet?
Quando devo usar qual?

Desde já agradeço.

Esse link deve te ajudar:

http://blog.caelum.com.br/2006/10/04/performance-hashset-em-vez-de-arraylist/

Lists podem possuir elementos duplicados, e a ordem dos elementos é a ordem de inserção deles.

Sets não possuem elementos duplicados, e não normalmente não garantem a ordem dos elementos, a exceção é um SortedSet.

Recomendo ler toda a documentação sobre Collections e outras interfaces afins:

Índice: http://java.sun.com/javase/6/docs/technotes/guides/collections/index.html
Trail: http://java.sun.com/docs/books/tutorial/collections/index.html
Sobre interfaces: http://java.sun.com/docs/books/tutorial/collections/interfaces/index.html