Diferença chave: Na ciência da computação, um hashTable ou um hashMap refere-se a uma estrutura de dados que vincula chaves (nomes) com valores (atributos). Em Java, existem algumas diferenças importantes entre os dois, como: HashTable é sincronizado e o HashMap não está sincronizado. Um HashTable não permite chaves nulas. No entanto, um HashMap permite uma única chave nula e qualquer número de valores nulos.
HashMap e hashTable são estruturas de dados que são partes da coleção Java. Eles usam pares de valores-chave para armazenar objetos. Ambos compartilham algumas semelhanças, como os dois implementam a interface java.util.Map e ambos trabalham com o princípio de hashing. No entanto, quando nos referimos a eles no contexto da linguagem de programação Java, existem inúmeras diferenças entre os dois.
Uma hashTable é usada para armazenar e recuperar um valor usando uma chave. Para este propósito, a chave deve ser única. A tabela usada para armazenar os pares de chave e valor é conhecida como uma tabela de hash. Uma tabela de hash é formada usando um algoritmo que hashes as chaves. Essa função hash é usada para atribuir números aos dados de entrada e, em seguida, os dados são armazenados como o índice de matriz que corresponde ao número calculado ou avaliado.
Comparação entre HashMap e HashTable:
HashMap | HashTable | |
Sincronização | Não é sincronizado | Está sincronizado (thread safe) |
Valores nulos | Permite valores nulos como chave e valor | Não permite nulos |
Introdução em java | Java versão 1.2 | Primeira versão do kit de desenvolvimento java |
atuação | Comparativamente melhor | Comparativamente pobre |
Estende | Ele estende a classe AbstractMap | Ele estende a classe Dictionary que é bastante antiga |
Iteração de chaves | Iterador é usado para iterar as chaves | A interface de enumeração é usada para iterar chaves |
Aplicações | Melhor para aplicativos não encadeados | Geralmente, seguro para aplicativos multithread |
Serialização | Não serializado | Serializado |
Alternativa | Pode-se usar o hashMap simultâneo para o ambiente multi-thread | Nenhuma alternativa |