203 votes

Quelle est la différence entre HashSet et HashMap ....?

Mis à part le fait que HashSet ne permet pas les doublons, quelle est la différence entre HashMap et Hashset ...?

Je veux dire la mise en œuvre sage .....? C'est un peu vague parce que les deux utilisent des tables de hachage pour stocker les valeurs .....

338voto

b.roth Points 4198

HashSet est un ensemble , par exemple {1,2,3,4,5}

HashMap est une carte clé -> valeur (clé à valeur), par exemple {a -> 1, b -> 2, c -> 2, d -> 1}

Notez dans mon exemple ci-dessus que dans HashMap, il ne doit pas y avoir de clés en double, mais il peut avoir des valeurs en double.

Dans le hachage, il ne doit pas y avoir d'éléments en double.

180voto

justkt Points 8976

Ils sont tout à fait différentes constructions. Un HashMap est une implémentation de l' Map. Une Carte cartes des clés à des valeurs. La clé de rechercher à l'aide de la table de hachage.

D'autre part, une HashSet est une implémentation de l' Set. Un Set est conçu pour correspondre le modèle mathématique d'un ensemble. Un HashSet ne utiliser un HashMap à l'arrière de sa mise en œuvre, comme vous l'avez noté. Cependant, elle met en œuvre une tout autre interface.

Lorsque vous êtes à la recherche pour ce qui va être le meilleur, Collection pour vos besoins, le Tutoriel est un bon point de départ. Si vous voulez vraiment savoir ce qui se passe, il y a un livre pour que, trop.

39voto

Carl Manaster Points 23696

C'est vraiment une honte que tant leurs noms commencent par Hachage. C'est la partie la moins importante d'entre eux. Les parties importantes venir après le Hachage - les Ensemble et à la Carte, comme d'autres l'ont souligné. Ce qu'ils sont, respectivement, sont un Ensemble - une collection non ordonnée et une Carte - une collection avec accès par clé. Ils se trouvent être mis en œuvre avec des hachages - c'est là que les noms, mais leur essence est cachée derrière la partie de leurs noms.

Ne soyez pas confus par leurs noms; ils sont profondément différentes choses.

4voto

leonbloy Points 27119

Comme les noms l'indiquent, un HashMap est une carte associative (le mappage d'une clé à une valeur), un HashSet n'est qu'un ensemble .

0voto

Matthew Flaschen Points 131723

Un HashSet est implémenté sous la forme d'un HashMap . C'est un mappage entre la clé et un objet PRESENT.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X