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 !