Est-il possible d'avoir plusieurs valeurs, pour une seule clé, dans la classe de dictionnaire Java?Classe de dictionnaire
Répondre
Bien sûr. Utilisez une liste comme valeur.
Vous devriez jeter un oeil à la classe MultiMap des communes apache collections
Vous pouvez utiliser une Map
régulière et ont les valeurs soient Collection
s:
Map<Integer, List<String>> map = new HashMap<Integer, List<String>>();
map.put(0, Arrays.asList("foo", "bar"));
map.put(1, new ArrayList<String>());
map.get(1).add("blag");
Ou vous pouvez utiliser MultiMap
à partir du Apache Commons Collections .
Un
MultiMap
est unMap
avec une sémantique légèrement différente. Mettre une valeur dans la carte ajoutera la valeur àCollection
à cette clé. Obtenir une valeur retournera unCollection
, contenant toutes les valeurs mises à cette clé.Par exemple:
MultiMap mhm = new MultiHashMap(); mhm.put(key, "A"); mhm.put(key, "B"); mhm.put(key, "C"); Collection coll = (Collection) mhm.get(key);
coll
sera une collection contenant "A", "B", "C".
(Malheureusement, MultiMap
n'utilise pas génériques.)
vous ne pouvez pas utiliser le type "int" en tant que paramètre générique, car il s'agit d'un type primitif. Utilisez Integer à la place. – cd1
+1 pour les exemples de codes. – akarnokd
Google Collections serait beaucoup préférable à Apache Commons Collections. Il est implémenté avec des génériques et d'autres fonctionnalités de Java 5, et semble globalement être une meilleure extension pour le framework de collections Java. Voir http://www.javalobby.org/articles/google-collections/ (recherche pour "Apache Commons") – Jonik
D'abord, en ce qui concerne la classe dictionnaire: Cette classe est considérée comme obsolète, la documentation recommande l'utilisation de la carte à la place.
Ce type de collection que vous cherchez s'appelle un multimap. Vous pouvez en mettre un vous-même avec une liste, mais c'est fastidieux.
Vous pouvez utiliser un MultiMap à partir de Collections Apache ou de Google Collections. Bien que je sois personnellement un fan des collections Apache, ils ne supportent pas vraiment les génériques, donc un multimap Google peut être plus sûr.
- 1. Propriété de dictionnaire dans la classe VBA
- 2. (Courant) NHibernate cartographie dictionnaire avec classe Key
- 3. Valeur de clé de classe de dictionnaire générique
- 4. Classe de dictionnaire général observable pour DataBinding/WPF C#
- 5. iPhone NSArray de Dictionnaire des valeurs Dictionnaire
- 6. Activer foreach pour une classe dérivée du Dictionnaire
- 7. classe hérite dictionnaire générique <string, IFoo> Interface et
- 8. SQLAlchemy - Dictionnaire de tags
- 9. triez un dictionnaire par un autre dictionnaire
- 10. Dictionnaire de valeur multiple
- 11. Mapping dictionnaire avec iBATIS
- 12. Dictionnaire avec des classes?
- 13. const Dictionnaire en C#
- 14. dictionnaire d'objet
- 15. NHibernate: mappage d'un dictionnaire de listes
- 16. Dictionnaire C# avec ReaderWriterLockSlim
- 17. API ou bibliothèque de dictionnaire
- 18. obtenir mon arbre dictionnaire de ma classe xmlparser .. à mon fichier drilldowntableappdelegate
- 19. Comment créer une classe C# avec un membre de type dictionnaire utilisant XSD?
- 20. Client Web Service en Python utilisant ZSI - "Structure sans classe n'a pas obtenu de dictionnaire"
- 21. Je veux créer une classe personnalisée de type Dictionnaire <int, T>
- 22. Taille d'un dictionnaire
- 23. Clé dans le dictionnaire
- 24. Hashtable vs Dictionnaire
- 25. bouclez Dictionnaire en C#
- 26. Liste/Dictionnaire générique
- 27. dictionnaire en python?
- 28. Aide Python dictionnaire/liste
- 29. j'ai converti xml dictionnaire
- 30. Dictionnaire recommandation webservice
Voir ma réponse ci-dessous concernant le dictionnaire - il est considéré comme une classe obsolète. – Uri
Qu'est-ce que la classe Java Dictionary? Voulez-vous dire Hashtable? –
Cela ressemble à une rediffusion de cette question: http://stackoverflow.com/questions/1049833/multi-valued-hashtable-in-java, posté quelque 12 heures plus tôt. Les deux ont été demandés par quelqu'un nommé Raji, mais en utilisant différents comptes non enregistrés. – Jonik