Alguém pode verificar se o resumo sobre Collections está correto?

Olá Pessoal

Eu fiz um resumo sobre Collections, gostaria que alguém corrija, e dê mais alguma dica:

=> Set t1 = new HashSet(); HashSets não são ordenáveis, nem garante que a ordem de inserção será mantida, e não coloca
elementos repetidos;

=> Set t2 = new TreeSet(); TreeSet coloca os elementos em ordem, mas retira elementos repetidos;

=> Set t3 = new LinkedHashSet(); LinkedHashSet deixa os elementos na ordem de inserção e retira elementos repetidos;

=> List l1 = new ArrayList(); Permite inserir elementos nulos e na ordem de inserção, também permite elementos repetidos;

=> List l2 = new LinkedList(); Permite inserir elementos nulos e na ordem de inserção, também permite elementos repetidos;

=> Map m1 = new HashMap<Object, Object>(); Permite inserir elementos nulos, a chave(índice) tem que ser único, pois ele sobrescreve
o elemento com a mesma chave, não segue ordem;

=> Map m2 = new TreeMap<Object, Object>(); Permite inserir elementos nulos, ordena pela chave, a chave precisa ser única;

=> Map m3 = new LinkedHashMap<Object, Object>(); Permite inserir elementos nulos, segue a ordem de inserção, a chave precisa ser única;

Obrigada :slight_smile:

Melhor estudar primeiro pelas interfaces, depois pelos detalhes das classes implementadoras:

Set: Garante que os elementos inseridos sejam únicos, sem repetição. Itens repetidos são descartados. Não garante ordem.
SortedSet: É um Set ordenado.

List: Garante a ordem dos elementos pela inserção.

Map: Não faz parte da hierarquia da Collection, mas é considerado parte das Collections.


HashSet e LinkedHashSet implementam Set. LinkedHashSet garante a ordem de inserção.
TreeSet implementa SortedSet.

ArrayList e LinkedList implementam List. ArrayList é rápido para acessos aleatórios a qualquer posição dele. LinkedLists são rápidas em inserções e remoções.

As implementações de Map são quase as mesmas de Set. Uma grande diferença é o LinkedHashMap. Dá pra passar um booleano para o construtor dele falando se você quer ordenar pelo acesso aos itens. LinkedHashMap também tem o método removeEldestEntry, e é fácil implementar um cache de objetos com ele.