Comment obtenir un Entryset à partir de TreeMap en Java

Cet exemple montre comment récupérer tous les objets de TreeMap clé et valeur comme un ensemble d'objets de type Entry. La classe Entry dispose des méthodes getters pour accéder au détails de l'élément. La méthode entrySet() renvoie tous les éléments comme un ensemble d'objets.

Vous allez voir que la méthode entrySet() retourne un ensemble de Map.Entry<K,V>. Ce que veut dire qu'à partir de TreeMap<t1,t2>, vous aurez un Set<Map.Entry<t1,t2>> et à partir de ça vous pouvez obtenir les clés et les valeurs directement, ou vous pouvez aussi passer par un Iterator<Map.Entry<t1,t2>> et chaque élément dans Iterator est de type Map.Entry<t1,t2>. Donc, pour obtenir une clé et sa valeur, utilisez ces deux méthodes getKey() et getValue().

import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;

public class entrySet {
public static void main(String args[]) {

TreeMap<String, Integer> treemap = new TreeMap<String, Integer>();

treemap.put("A", 1);
treemap.put("B", 2);
treemap.put("C", 3);
treemap.put("D", 4);
treemap.put("E", 5);
treemap.put("F", 6);

//la méthode entrySet() retourne un objet Set de type Map.Entry<String, Integer>
Set<Map.Entry<String, Integer>> set = treemap.entrySet();

System.out.println("Avec Iterator");
//vous pouvez à partir de Set obtenir un Iterator
Iterator it = set.iterator();
while(it.hasNext()){
Map.Entry me = (Map.Entry)it.next();
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}

System.out.println("Sans Iterator");
//ou vous pouvez récupérer la clé et sa valeur directement sans passer par Iterator
for (Map.Entry<String, Integer> me : set) {
System.out.print(me.getKey() + ": ");
System.out.println(me.getValue());
}
}
}
Sortie:

Avec Iterator
A: 1
B: 2
C: 3
D: 4
E: 5
F: 6
Sans Iterator
A: 1
B: 2
C: 3
D: 4
E: 5
F: 6
Références:
Coderanch: Iterator and EntrySet