Auparavant, j'ai créé une ArrayList pour contenir les objets des enregistrements. J'ai depuis remplacé le ArrayList avec un HashMap où les objets sont stockés et utilisent la chaîne de nom d'utilisateur d'un individu comme clé.Java - Itération sur HashMap en remplacement de ArrayList
La classe de ce répertoire a implémenté Iterable via implements Iterable<Object>
(juste une question unique, mais pourquoi <Object>
est-il requis?).
Le code précédent utilisé pour parcourir la ArrayList était:
public Iterator iterator() {
return records.iterator();
}
J'ai ensuite utilisé cet itérateur pour tous les objets de cette classe comme suit:
for (Object o : directory) {
TelephoneRecords temp = (TelephoneRecords) o;
System.out.println(temp.toString());
}
Malheureusement, le HashMapName.iterable () semble soulever des problèmes, alors comment puis-je aller sur ce comportement avec un HashMap?
Pourquoi y a-t-il un problème avec mes records.iterator(); ? – mino
Vous ne pouvez pas itérer directement sur HashMap, vous devez utiliser entrySet. Donc, si vous voulez créer un Iterator, essayez: Iterator> mapEntries = records.entrySet(). Iterator(); –