Diferença entre Set e Map

5 respostas Resolvido
TalonNoxus

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?

5 Respostas

Mike
Solucao aceita

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.

TalonNoxus

Muito obrigado!!! Agora eu consegui entender :grinning:

Mike

:+1:

FearX

Ótima explicação, @Mike.

Primeiramente, quem em pleno 2019 gosta de Talon?

Segundamente, pelo visto você está entrando nos conceitos de Estrutura de Dados. A Alura tem um curso muito bacana sobre isso que vale o clique.

Mike

Valeu @FearX :+1:

Criado 31 de janeiro de 2019
Ultima resposta 31 de jan. de 2019
Respostas 5
Participantes 3