J'ai le code suivant pour un ArrayListMultimap
imbriqué:Comment obtenir la valeur dans un imbriquée `ArrayListMultimap`
Multimap<String, Multimap<Integer, String>> doubleMultiMap = ArrayListMultimap.create();
Multimap<Integer, String> doc = ArrayListMultimap.create();
doc.put(1, "ABC");
doc.put(2, "BCD");
doc.put(1, "XYZ");
doubleMultiMap.put("D123", doc);
doc = ArrayListMultimap.create();
doc.put(1, "John");
doc.put(2, "Jane");
doc.put(2, "George");
doubleMultiMap.put("J123", doc);
System.out.println(doubleMultiMap.get("D123"));
Pour doubleMultiMap.get("D123")
j'obtenir le résultat que [{1=[ABC, XYZ], 2=[BCD]}]
Mais comment obtenir la valeur touches D123, 1
. J'ai essayé d'utiliser (doubleMultiMap.get("D123")).get(1)
mais ce n'est pas supporté.
Mise à jour: Ce que j'essaie de réaliser est quelque chose comme ci-dessous. Si imbriqué Multimap
n'est pas idéal, quelle alternative pourrais-je utiliser?
Avez-vous vraiment besoin d'une double carte multiple? Votre exemple et votre code essayé ressemble à ce que vous voulez en fait 'Map>'. –
Tom
Puis-je ajouter que l'utilisation d'un Multimap imbriqué est une très mauvaise idée? Un multimap concerne la structure de données la plus complexe que vous devriez utiliser. –
@Tom cela équivaut à l'interface 'Multitable' qui est [discuté depuis des années] (https://github.com/google/guava/issues/902) –