A diferença entre hashmap e hashset é a pergunta mais frequente nas entrevistas de Java. Se a estrutura de coleção e a entrevista com vários threads não estiverem envolvidos, pode-se dizer que está incompleto. O problema com a estrutura de coleta não envolve hashset e hashmap, e pode -se dizer que está incompleto. Hashmap e Hashset fazem parte da estrutura de coleta, que nos permite usar coleções de objetos. A estrutura de coleção possui sua própria interface e implementação, que são divididas principalmente em interface set, interface de listagem e interface da fila. Eles têm suas próprias características. O conjunto não permite que os objetos tenham valores duplicados, e a lista permite duplicatas. Ele indexa os objetos no conjunto. O princípio de trabalho da fila é o algoritmo FCFS (primeiro a chegar, primeiro servidor).
Primeiro, vejamos o que são hashmap e hashset, e depois comparar as diferenças entre eles.
O que é hashset
O hashset implementa a interface do conjunto, que não permite valores duplicados no conjunto. Quando mencionamos o hashset, a primeira coisa é garantir que o objeto substitua os métodos iguais () e hashcode () antes de armazenar o objeto no hashset, para que o objeto possa ser comparado se os valores do objeto são iguais, de modo a garantir que não haja objetos iguais armazenados no conjunto. Se não reescrevermos esses dois métodos, a implementação padrão deste método será usada.
O método público add booleano (objeto o) é usado para adicionar elementos no conjunto. Quando o valor do elemento for repetido, ele retornará imediatamente falso e, se for adicionado com sucesso, retornará true.
O que é hashmap
HashMap implementa a interface do mapa, que mapeia pares de valor-chave. As teclas duplicadas não são permitidas no mapa. Existem duas implementações básicas da interface do mapa, Hashmap e Treemap. Treemap salva a ordem dos objetos, enquanto o hashmap não pode. O hashmap permite que as chaves e valores sejam nulos. O hashmap não é sincronizado, mas a estrutura de coleta fornece métodos para garantir que o hashmap sincronizado, de modo que, quando vários threads acessarem o hashmap ao mesmo tempo, ele pode garantir que apenas um thread altere o mapa.
O método Public Object Put (chave do objeto, valor do objeto) é usado para adicionar elementos ao mapa.
Você pode ler este artigo para ver como funciona o hashmap e este artigo para ver como o hashmap e a hashtable são diferentes.
A diferença entre hashset e hashmap
| *Hashmap* | *Hashset* |
| Interface de mapa de implementos de hashmap | Implementos de hashset define interface |
| HashMap para armazenar pares de valores-chave | Hashset apenas armazena objetos |
| Use o método put () para colocar elementos no mapa | Use o método add () para colocar elementos em conjunto |
| HashMap usa objetos -chave para calcular valores de código de hashcode | O hashset usa objetos de membro para calcular os valores do HashCode. O código HashCode pode ser o mesmo para dois objetos; portanto, o método iguals () é usado para julgar a igualdade de objetos. Se os dois objetos forem diferentes, retorne false. |
| Hashmap é mais rápido porque usa a única chave para obter o objeto | Hashset é mais lento que o hashmap |
Se você conhece outras diferenças, deixe uma mensagem.
Link original: Javarevisited Tradução: Importnew.com - Tang Xiaojuan Link de tradução: http://www.importnew.com/6931.html