Eu dei uma olhada nas coleções Set e Map, já as utilizei mas não ficaram muito claras para mim, será que alguém pode me ajudar?
Diferença entre Set e Map
5 Respostas
Set:
É uma coleção que não permite objetos duplicados, para fazer um bom uso do Set é importante lembrar de sobreescrever os métodos equals e hashcode.
As IDEs possuem um recurso que facilita a sobrescrita desses métodos.
Caso você tente adicionar o mesmo objeto duas vezes no Set, o segundo será ignorado e o primeiro (o que ja esta la) será mantido
Map:
É uma coleção que trabalha com pares de chave e valor, ou seja, através de uma chave você encontra um valor.
O Map não permite chaves duplicadas, caso você tente adicionar a mesma chave duas vezes, a segunda irá sobrepor a primeira (a que ja esta la)
Ambas as coleções são interfaces, então para utiliza-las você deve utilizar uma de suas implementações
As implementações mais usadas de Set:
HashSet, TreeSet e LinkedHashSet
As implementações mais usadas de Map:
HashMap, TreeMap e LinkedHashMap
Implementações Hash: não garantem a ordem de inserção, ou seja, se você adicionar um objeto X na segunda posição, nada garante que durante uma iteração ele será o segundo elemento a ser iterado
Implementações Tree: para utilizar você deve implementar a interface Comparable ou Comparator (apenas uma delas). Essa implementação ordena a coleção conforme a sua implementação do método das interfaces acima.
Implementações LinkedHash: garantem a ordem de inserção, ou seja, se você adicionar um objeto X na segunda posição, na hora da iteração ele será o segundo elemento a ser iterado.
Muito obrigado!!! Agora eu consegui entender 

Valeu @FearX 