Mantém ordem de inserção.
Aceita elementos repetidos.
Acesso por índice.
List
Não aceita duplicados.
Não há acesso por índice.
A ordem depende da implementação.
Uso típico, garantir unicidade.
Set
HashSet, LinkedHashSet, TreeSet
Armazena pares chave,valor.
Chaves são únicas, valores podem repetir.
Acesso por chave.
Uso típico, dicionário, cache, lookup por chave.
Map
Inserção e remoção no meio da lista é cara, precisa mover elementos.
ArrayList
Internamente, lista duplamente ligada.
Inserções e remoções no início e meio são mais baratas, não precisa mover array.
Acesso por índice é mais lento, precisa percorrer a lista.
om quando há muitas inserções e remoções em posições arbitrárias, e pouco acesso por índice.
LinkedListß