fork(4) download
  1. import java.util.*;
  2. public class Main{
  3. public static void main(String [] args){
  4. // Creo el mapa
  5. HashMap<String,Integer> myMap = new HashMap<String,Integer>();
  6.  
  7. // Meto los valores al mapa
  8. myMap.put("Rojo",3);
  9. myMap.put("Azul",1);
  10. myMap.put("Verde",2);
  11. myMap.put("Amarillo",4);
  12. myMap.put("Negro",2);
  13.  
  14. System.out.println("Mapa desordenado:");
  15. for (String key : myMap.keySet()) {
  16. System.out.println("Llave/Valor: " + key + "/"+myMap.get(key));
  17. }
  18.  
  19. ValueComparator bvc = new ValueComparator(myMap);
  20. TreeMap<String,Integer> mapaOrdenado = new TreeMap<String,Integer>(bvc);
  21.  
  22. mapaOrdenado.putAll(myMap);
  23. System.out.println();
  24. System.out.println("Mapa ordenado:");
  25. for (String key : mapaOrdenado.keySet()) {
  26. System.out.println("Llave/Valor: " + key + "/"+mapaOrdenado.get(key));
  27. }
  28. }
  29. }
  30.  
  31. class ValueComparator implements Comparator {
  32.  
  33. Map _base;
  34. public ValueComparator(Map base) {
  35. _base = base;
  36. }
  37.  
  38. public int compare(Object a, Object b) {
  39. int value = ((Integer)_base.get(b)).compareTo((Integer)_base.get(a));
  40. return value;
  41. }
  42. }
Success #stdin #stdout 0.09s 212736KB
stdin
Standard input is empty
stdout
Mapa desordenado:
Llave/Valor: Amarillo/4
Llave/Valor: Rojo/3
Llave/Valor: Azul/1
Llave/Valor: Verde/2
Llave/Valor: Negro/2

Mapa ordenado:
Llave/Valor: Amarillo/4
Llave/Valor: Rojo/3
Llave/Valor: Verde/2
Llave/Valor: Azul/1