96 votes

Quelle est la différence entre HashSet et Set ?

J'ai vu l'extrait de code comme

Set<Record> instances = new HashSet<Record>();

Je me demande si Hashset est un ensemble spécial. Une différence entre eux ?

39voto

vaugham Points 1114

Le HashSet est une implémentation d'un Set.

18voto

MeBigFatGuy Points 12489

La question a reçu une réponse, mais je n'ai pas vu la réponse à la question de savoir pourquoi le code mentionne les deux types dans le même code.

Généralement, vous voulez coder contre des interfaces qui, dans ce cas, sont définies. Pourquoi ? Parce que si vous faites référence à votre objet via des interfaces toujours (sauf le nouveau HashSet()) alors il est trivial de changer l'implémentation de l'objet plus tard si vous trouvez qu'il serait préférable de le faire parce que vous ne l'avez mentionné qu'une seule fois dans votre base de code (où vous avez fait le nouveau HashSet()).

9voto

Magnus Wissler Points 194

Set est l'interface générale d'une collection de type set, tandis que HashSet est une implémentation spécifique de l'interface Set (qui utilise des codes de hachage, d'où le nom).

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