2017-01-29 1 views
-1

Я создал hashmultimap Как я могу использовать итератор для доступа к моим объектам-ученикам внутри hashmultimap?Google Guava MultiMap Я не знаю, как получить доступ к моим объектам

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

Итак, вы поняли, что этот класс существует; и вы читаете документацию о том, как вставлять вещи, но вы не можете прочитать документацию, которая рассказывает о получении значений? Просто интересуюсь ... – GhostCat

ответ

1

гуавы-х Multimap держит Collection значений для каждого ключа. Итак, Object, возвращенный вашим вторым итератором iterator2, на самом деле является вашим Student, который вы положили ранее.

Возможно, для вас было бы разумнее использовать надлежащие дженерики, то есть объявить Multimap как Multimap<Integer, Student>. Тогда ваш второй итератор вернет Student вместо Object.

Смежные вопросы