2012-04-06 5 views
3

J'essaie d'afficher le map que j'ai créé en utilisant l'Iterator. Le code J'utilise est:Affichage du contenu d'une carte sur l'itérateur

private void displayMap(Map<String, MyGroup> dg) { 
Iterator it = dg.entrySet().iterator(); //line 1 
while (it.hasNext()) { 
    Map.Entry pair = (Map.Entry)it.next(); 
    System.out.println(pair.getKey() + " = " + pair.getValue()); 
    it.remove(); 
    } 
} 

classe MyGroup et il a deux champs en elle, du nom id et name. Je veux afficher ces deux valeurs par rapport au pair.getValue(). Le problème ici est que la ligne 1 n'est jamais exécutée, ni aucune exception.

Aidez-nous s'il vous plaît. PS: J'ai essayé toutes les méthodes sur this link

+0

comment savez-vous pas son exécution? – Asha

+0

j'avais inséré un sysout après la première ligne. Il n'a pas imprimé. –

+1

Vous êtes sûr que votre objet dg n'est pas vide ou n'est pas vide? Aussi, est-ce que c'est "MyGroup"? Vous avez votre classe en minuscule, ce qui n'est pas vraiment une bonne idée. – jmort253

Répondre

7
Map<String, MyGroup> map = new HashMap<String, MyGroup>(); 
for (Map.Entry<String, MyGroup> entry : map.entrySet()) { 
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 
} 

utilisant iterator

Map<String, MyGroup> map = new HashMap<String, MyGroup>(); 
Iterator<Map.Entry<String, MyGroup>> entries = map.entrySet().iterator(); 
while (entries.hasNext()) { 
    Map.Entry<String, MyGroup> entry = entries.next(); 
    System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); 
} 

Pour plus d'itération voir this link

+0

Lien utile. Mais cela n'a pas aidé dans ce cas. Même encore, pas de résultat. –

+0

@SunmitGirme bien sûr que non je l'ai vérifié dans mon ordinateur, et il donne un résultat parfait. S'il vous plaît vérifier correctement. –

+0

@chandraShekhar: ouais je crois que le code pour afficher le contenu de la carte est correct dans tous les cas. Il doit y avoir un problème avec le mappage dans la classe MyGroup. –