Ранее я настроил ArrayList, чтобы содержать объекты записей. С тех пор я заменил ArrayList на HashMap, где хранятся объекты, и использует в качестве ключа строку имени пользователя.Java - Итерация над HashMap, заменяющая ArrayList
Класс этого каталога реализован Iterable через implements Iterable<Object>
(только один вопрос, но почему требуется <Object>
?).
предыдущий код, используемый для итерации по ArrayList было:
public Iterator iterator() {
return records.iterator();
}
Затем я использовал этот итератор для всех объектов этого класса следующим образом:
for (Object o : directory) {
TelephoneRecords temp = (TelephoneRecords) o;
System.out.println(temp.toString());
}
К сожалению, в HashMapName.iterable (); похоже, поднимает проблемы, так как я могу повести это поведение с помощью HashMap?
Итак, почему возникает проблема с моими record.iterator(); ? – mino
Вы не можете напрямую перебирать HashMap, вы должны использовать entrySet. Поэтому, если вы хотите создать Iterator try: Iterator> mapEntries = records.entrySet(). Iterator(); –