2010-11-05 51 views
6

Où puis-je trouver une implémentation de multimap pour Java qui fonctionnera sur Android sans avoir à inclure d'autres classes, etc. Les implémentations que j'ai trouvées nécessitent toutes d'autres choses qui nécessitent d'autres les choses et ça devient salissant rapidement. Je porte un projet en C++ et je suis nouveau sur java (et ce projet aussi, donc j'essaie de garder les choses aussi identiques que possible tout en le faisant fonctionner) donc toute référence ou exemple serait génial.Comment puis-je créer un Multimap en Java sur Android

Répondre

17

Vous pouvez utiliser une carte et une liste pour créer un multimap. Disons que vous vouliez associer un nombre entier avec une liste de type classe T. Utilisez le code suivant:

Map<Integer, List<T>> myMultiMap = new HashMap<Integer, List<T>>();

Il pourrait être gênant mais cela devrait vous donner ce que vous cherchez.

Une autre option consiste à utiliser les implémentations de la bibliothèque Multimap.

+0

Je regardais Guava, mais son implémentation multimap semble avoir besoin d'autres classes, qui à leur tour en requièrent d'autres ... Je ne veux pas installer et inclure une pile de nouvelles choses, je veux juste un simple multimap cela se comportera comme en C++ pour simplifier le portage. Merci pour les suggestions, si je n'arrive pas à trouver quelque chose de suffisamment propre, je peux implémenter une carte/liste comme vous le recommandez, mais ensuite je dois créer une gestion de cette structure ... – ima747

+0

Liste dans une carte s'est avéré être le meilleure solution pour mes besoins. – ima747

5

Il semble que vous soyez à la recherche d'une bibliothèque Apache Commons Collection. Là, vous avez une classe MultiMap. Je ne l'ai pas encore testé moi-même, donc je ne peux pas promettre que ça marche mais ça semble juste pour votre projet.

Vous ne trouverez pas de fonction MultiMap dans Java, donc d'autres ont des bibliothèques écrites qui le contiennent. Vous pouvez cependant essayer de l'implémenter vous-même si votre niveau de connaissances est suffisamment élevé mais cela nécessite une certaine expérience Java. Donc, votre meilleur pari est d'essayer d'apprendre à utiliser et si nécessaire adapter les bibliothèques pour les utiliser sur Android.