2017-01-29 2 views
-1

J'ai créé un hashmultimap Comment puis-je utiliser itérateur pour accéder à mes objets étudiants à l'intérieur de hashmultimap?Google Guava MultiMap Je ne sais pas comment accéder à mes objets

Multimap<Integer, Object> myMultimap2 = HashMultimap.create(); 
Student one = new Student("Bob","Any",35); 
Student two = new Student("Tom","Johnson",22); 
Student three = new Student("Yo","Zun",42); 
myMultimap2.put(1,one); 
myMultimap2.put(2,two); 
myMultimap2.put(2,three); 
Iterator<Integer> iterator = myMultimap2.keySet().iterator(); 

while (iterator.hasNext()){ 
    int key = iterator.next(); 
    System.out.println(key); 
    Collection collection = myMultimap2.get(key); 
    Iterator iterator2 = collection.iterator(); 
    while (iterator2.hasNext()){ 
     System.out.println(iterator2.next()); 
     ??????? 
    } 
} 
+0

Alors vous avez pensé que cette classe existe; et vous lisez la documentation sur comment insérer des choses, mais vous ne parvenez pas à lire la documentation qui parle de récupérer des valeurs? Je me demandais juste ... – GhostCat

Répondre

1

goyave de Multimap conserve une Collection de valeurs pour chaque touche. Donc, le Object retourné par votre deuxième itérateur iterator2 est en fait votre Student que vous avez mis plus tôt. Il est peut-être plus logique d'utiliser des génériques appropriés, c'est-à-dire de déclarer votre Multimap comme étant Multimap<Integer, Student>. Ensuite, votre deuxième itérateur renverra Student au lieu de Object.