Inspiré de cette article en anglais.
Dans le cas d’un tri sur la clé, la meilleure solution consiste à utiliser un TreeMap<k, B>.
1ère étape : créer un comparateur. Ici, la clé de mon HashMap est de type MaClasse. On veut trier sur l’attribut MaClass.monChamp.
private Comparator monComparer = new Comparator()
{
@Override
public int compare(MaClasse o1, MaClasse o2)
{
return o1.monChamp.compareTo(o2.monChamp);
}
};
2ème étape : créer (pourquoi pas) une fonction qui trie un HashMap non trié…
public HashMap<maClasse, ClasseQuelconque> TrieMoiCeHashMap(HashMap<maClasse, ClasseQuelconque> listeNonTriee)
{
Map<maClasse, String> listeTriee = new TreeMap<maClasse, String>(monComparer);
listeTriee.putAll(listeNonTriee);
return listeTriee;
}
Elémentaire !