J'essaie de créer une classe PhoneBook
qui utilise un HashMap
en Java. Lorsque j'ajoute une entrée à l'aide de la méthode put()
dans addContact()
, cela fonctionne correctement, mais lorsque j'essaie d'extraire des valeurs dans la méthode searchContact()
, aucun n'est renvoyé. Je ne reçois pas de valeurs nulles; HashMap
contient définitivement la ou les clés que je recherche, mais les valeurs associées à la ou aux clés ne sont pas retournées. Merci d'avance.Java HashMap, get méthode (clé) ne fonctionne pas
Voici mon code:
public class PhoneBookContactsImpl {
private Map<String, List<String>> contactMap = new HashMap<String, List<String>>();
public void addContact(String name, List<String> list) {
contactMap.put(name, list);
//its working fine here
System.out.println(contactMap.get(name));
}
public Map<String, List<String>> getContactMap() {
Set set = contactMap.entrySet();
Iterator i = contactMap.entrySet().iterator();
while (i.hasNext()) {
Map.Entry me = (Map.Entry) i.next();
System.out.println(me.getKey() + " : ");
List<String> nos = (List<String>) me.getValue();
System.out.println("Nos = " + nos + " n ");
System.out.println(nos.size());
}
return contactMap;
}
public List<String> searchContact(String name) throws NoDataFoundException {
if (contactMap.isEmpty()) {
System.out.println("Empty PhoneBook");
throw new NoDataFoundException();
} else {
if (contactMap.containsValue(name))
return contactMap.get(name);
//it doesnt retrieve valur from here
else {
System.out.println("No Entry for Specified Entry");
throw new NoDataFoundException();
}
}
}
}
Merci Every1, pour moi aider, i avait deux problèmes un, j'ai utilisé containsValue() insteas de containsKey() un autre problème la variable de liste dans ma classe principale, que je passais en paramètre, après avoir passé j'appelait la méthode Clear(), de sorte que vidé les autres liens référencés dans PhoneBookContactsImpl .. Merci à tous 1 – user3712362