Quelqu'un pourrait-il expliquer les principaux avantages de choisir l'un par rapport à l'autre et les inconvénients qui viennent avec ce choix?Quels sont les avantages et les inconvénients de LinkedHashMaps vs. LinkedHashSets?
Répondre
Ils résolvent différents problèmes, LinkedHashMap fait un mappage des clés aux valeurs, un LinkedHashSet stocke simplement une collection de choses sans doublons.
Un lien carte de hachage est pour les paires clé de cartographie/valeur - par exemple, stocker les noms et les âges:
Map<String,Integer> namesAndAges = new LinkedHashMap<String,Integer>();
namesAndAges.put("Benson", 25);
namesAndAges.put("Fred", 19);
D'autre part, un ensemble de hachage lié est pour stocker une collection d'une chose - - les noms, par exemple:
Set<String> names = new LinkedHashSet<String>();
names.add("Benson");
names.add("Fred");
Je regardais juste le code source de ArrayList juste pour m'assurer que je devais utiliser un Set (qui a une bonne performance de recherche) au lieu d'un ArrayList (qui doit traverser tous les enregistrements pour trouver quelque chose) –
Le but de LinkedHashMap sur HashMap, LinkedHashMap utilise également une LinkedList en interne pour stocker l'ordre dans lequel les paires clé/valeur ont été ajoutées.Donc itérer sur LinkedHashMap donnera lieu à une paire clé/valeur dans l'ordre dans lequel ils ont été ajoutés alors qu'un HashMap classique ira en fonction de l'ordre du hashcode de chaque clé. –
C'est exact, mais comme la question consistait à comparer LinkedHashMaps à LinkedHashSets, j'ai décidé de me concentrer sur les différences plutôt que sur les points communs. :-) – Benson
On est un ensemble, et on est une carte. Choisissez la structure de données correcte pour un scénario donné.
Un ensemble ne contient que des valeurs, vous ne pouvez pas insérer de doublons. A La carte possède une paire clé/valeur. Ils ont des utilisations différentes. Un ensemble sera utilisé comme une collection, en passant dans un groupe d'objets, alors qu'une carte est utile lorsque vous avez une clé unique pour identifier chaque élément et que vous voulez pouvoir y accéder avec cette clé.
LinkedHashSet contiennent en interne une liste doublement chaînée qui traverse toutes ses entrées qui définit l'ordre des éléments. Cette classe autorise les éléments NULL.
Cette implémentation de classe n'est pas synchronisée, elle doit donc être synchronisée de manière externe. LinkedHashMap n'est pas synchronisé soit et doit être synchronisé en externe
Par exemple: paire
Map map = Collections.synchronizedMap(new LinkedHashMap());
autre que celui des magasins de LinkedHashSet valeurs uniques par élément et stocke LinkedHashMap valeur clé /.
Dans le diagramme ci-dessous, vous pouvez voir java.util.Collections. boîtes solides montrent la mise en œuvre de classe concrète
alt text http://www.softfinity.com/diag1.png
LinkedHashMap
et LinkedHashSet
n'a qu'une seule différence et qui vient par HashMap
et HashSet
différence, leurs parents. Encore une fois, HashSet
est juste une variation de HashMap
. Vous pouvez indiquer HashSet
comme HashMap
avec toutes les valeurs pointant vers un seul objet final. Par conséquent, les deux ne vous donnent pas beaucoup de différences.
En utilisant LinkedHashSet
, vous devez utiliser un seul objet final autre que vos clés. En utilisant LinkedHashMap
, si vous définissez des valeurs comme nulles pour toutes les clés, alors c'est mieux que LinkedHashSet pour Set.
- 1. Quels sont les avantages/inconvénients de py2exe
- 2. Quels sont les avantages et les inconvénients de l'utilisation d'OpenID?
- 3. Quels sont les avantages et les inconvénients d'avoir plusieurs héritages?
- 4. Quels sont les avantages/inconvénients de l'utilisation d'un CTE?
- 5. Web Service Security: Quels sont les avantages et les inconvénients de WSE3.0 et WCF?
- 6. Quels sont les avantages et les inconvénients de l'utilisation d'un «index partiel»?
- 7. Quels sont les avantages et les inconvénients du service Msmqdistributor de Enterprise Library?
- 8. Quels sont les avantages et les inconvénients des différents types de champs date/heure dans MySQL?
- 9. Quels sont les avantages et les inconvénients de l'utilisation du pattern Front Controller?
- 10. dactylographié par rapport à dactylographié rigoureusement quels sont les avantages et les inconvénients
- 11. Quels sont les avantages et les inconvénients d'utiliser des téléphones iPhone/Android pour écrire des scripts?
- 12. Avantages et inconvénients de DotNetNuke?
- 13. Quels sont les avantages/inconvénients de la liste générique (de type) et des collections
- 14. Quels sont les avantages et les inconvénients de l'utilisation de RMI ou JMS entre les niveaux Web et métier?
- 15. Quels sont les avantages de Struts
- 16. Quels sont les inconvénients des méthodes statiques?
- 17. Quels sont les avantages des différentes endiannesses?
- 18. DSL vs appels de méthode: avantages et inconvénients
- 19. Quels sont les avantages/inconvénients de l'utilisation d'Oracle Auto Segment Space Management?
- 20. Quels sont les avantages d'utiliser un concept comme IStableable?
- 21. Quels sont les avantages et les inconvénients des services Web et RMI dans un environnement Java uniquement?
- 22. Quels sont les avantages et les inconvénients des DTO du point de vue de la performance d'un site Web?
- 23. Quels sont les avantages et/ou les inconvénients de l'exécution de chaque site Web dans son propre AppPool?
- 24. Quels sont les avantages/inconvénients d'utiliser un synonyme par rapport à une vue?
- 25. Hibernate: Event Listener ou Interceptor, quels sont les avantages/inconvénients dans la pratique?
- 26. Haskell newbie: utiliser la mise en page ou pas? Quels sont les avantages et les inconvénients (utiliser des exemples)
- 27. Curseur verus while loop - Quels sont les avantages/inconvénients des curseurs?
- 28. Utilisation de WebServiceHostFactory Avantages et inconvénients
- 29. Quels sont les avantages du design pour les programmeurs?
- 30. Quels sont les avantages de l'utilisation de plpgsql dans postgresql
Je suis devenu confus et j'ai posé une question stupide, merci pour les réponses rapides cependant. –