2011-11-14 5 views
0

Possible en double:
How to sort a Map<Key, Value> on the values in Java?comment trier hashmap par des valeurs?

je dois trier mes hashmap selon les valeurs qui y sont stockées. La hashmap contient le nom des contacts stockés dans phone.also j'ai besoin que les clés soient automatiquement triées dès que je trier les valeurs.ou vous pouvez dire que les clés et les valeurs sont liées ensemble ainsi tous les changements de valeurs devraient se refléter dans les clés.

HashMap<Integer,String> map = new HashMap<Integer,String>(); 
    map.put(1,froyo); 
    map.put(2,abby); 
    map.put(3,denver); 
    map.put(4,frost); 
    map.put(5,daisy); 

sortie requise:

2,abby; 
5,daisy; 
3,denver; 
4,frost; 
1,froyo; 
+0

Et aussi un double quasi-exacte d'une question posée plus tôt aujourd'hui. -1 pour le reposter sans même corriger les erreurs dans l'exemple. –

+0

ce serait bien si vous pouviez avoir fourni la réponse .. et d'ailleurs de quelles erreurs dans l'exemple parlez-vous. –

+0

Vous avez '(" 1 ", froyo)' etc, quand c'est '. –

Répondre

0
private static class MyMapComparator implements Comparator<Map.Entry<Integer, String>> 
{ 
    @Override 
    public int compare(Map.Entry<Integer, String> a, Map.Entry<Integer, String> b) { 
     return a.getValue().compareTo(b.getValue()); 
    } 
} 
... 

List<Map.Entry<Integer, String>> entries = new ArrayList<Map.Entry<Integer, String>>(map.entries()); 
Collections.sort(entries, new MyMapComparator()); 
Questions connexes