En Java, j'essaie de récupérer un HashMap<String, Object>
qui a l'objet qui est: HashMap<String, Object>
.HashMap de HashMaps traversal
J'ai implémenté une fonction récursive qui renvoie le HashMap<String, Object>
trouvé avec la clé donnée, ou null
si la clé n'a pas été trouvée.
Voici la fonction:
public static HashMap<String, Object> getHashMap(HashMap<String,
Object> map, String key)
{
for (Map.Entry<String, Object> entry : map.entrySet()) {
if (entry.getValue().getClass().getName() == "java.util.HashMap") {
if (entry.getKey() == key)
return (HashMap<String, Object>) entry.getValue();
return getHashMap((HashMap<String, Object>) entry.getValue(), key);
}
}
return null;
}
Il ne fonctionne que pour le premier élément. Comment je traverse une Hashmap de HashMaps? Quelle est la meilleure approche?
Si vous voulez vérifier si un objet est un objet 'HashMap', utilisez' instanceof HashMap' ... comparer la classe un nom comme celui-là est une très mauvaise idée, d'autant plus que vous vous trompez (besoin d'utiliser 'equals'). Même alors, vous ne devriez pas vous soucier si quelque chose est un 'HashMap' spécifiquement ... il devrait suffire qu'il implémente' Map'. – ColinD
Merci pour les conseils. Je l'ai modifié! –