Trier les clés dans une HashTable en Java

On peut pas trier une HashTable avec ses clés mais on peut faire secours à la collection ArrayList qui est prise dans l'argument de la méthode Collections.sort().

Dans cet exemple, on est entrain de copier les clés de HashTable dans une ArrayList. Les clés sont obtenues avec keySet(), puis on fait appel à Collections.sort() qui prend comme argument la nouvelle ArrayList créée qui contient nos clés.

import java.util.ArrayList;
import java.util.Collections;
import java.util.Hashtable;
import java.util.List;
import java.util.Map;

public class TriTreeMap {

public static void main(String[] args) {

//créer une instance de hashtable
Hashtable ht = new Hashtable();

//ajouter les pairs clés-valeurs
ht.put("d", "quatrième");
ht.put("a", "premier");
ht.put("c", "troisième");
ht.put("e", "cinquième");
ht.put("b", "deuxième");

System.out.println("Avant le tri:");
for (Map.Entry entry : ht.entrySet())
{
System.out.println(entry.getKey());
}

//créer une arraylist avec les clés recupérées de hashtable
List listcles = new ArrayList(ht.keySet());
//trier arraylist
Collections.sort(listcles);

System.out.println("Après le tri:");
for(String cle:listcles)
System.out.println(cle);
}
}
Sortie:

Avant le tri:
b
a
e
d
c
Après le tri:
a
b
c
d
e