import java.util.*;
public class Main{
public static void main
(String [] args
){ // Creo el mapa
HashMap
<String,Integer
> myMap
= new HashMap
<String,Integer
>();
// Meto los valores al mapa
myMap.put("Rojo",3);
myMap.put("Azul",1);
myMap.put("Verde",2);
myMap.put("Amarillo",4);
myMap.put("Negro",2);
System.
out.
println("Mapa desordenado:"); for (String key
: myMap.
keySet()) { System.
out.
println("Llave/Valor: " + key
+ "/"+myMap.
get(key
)); }
ValueComparator bvc = new ValueComparator(myMap);
TreeMap
<String,Integer
> mapaOrdenado
= new TreeMap
<String,Integer
>(bvc
);
mapaOrdenado.putAll(myMap);
System.
out.
println("Mapa ordenado:"); for (String key
: mapaOrdenado.
keySet()) { System.
out.
println("Llave/Valor: " + key
+ "/"+mapaOrdenado.
get(key
)); }
}
}
public ValueComparator
(Map base
) { _base = base;
}
return value;
}
}
aW1wb3J0IGphdmEudXRpbC4qOwpwdWJsaWMgY2xhc3MgTWFpbnsKICAgICAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmcgW10gYXJncyl7CgkJLy8gQ3JlbyBlbCBtYXBhCiAgICAgICAgICAgICAgICBIYXNoTWFwPFN0cmluZyxJbnRlZ2VyPiBteU1hcCA9IG5ldyBIYXNoTWFwPFN0cmluZyxJbnRlZ2VyPigpOwoKCQkvLyBNZXRvIGxvcyB2YWxvcmVzIGFsIG1hcGEKCQlteU1hcC5wdXQoIlJvam8iLDMpOwoJCW15TWFwLnB1dCgiQXp1bCIsMSk7CgkJbXlNYXAucHV0KCJWZXJkZSIsMik7CgkJbXlNYXAucHV0KCJBbWFyaWxsbyIsNCk7CgkJbXlNYXAucHV0KCJOZWdybyIsMik7CgoJCVN5c3RlbS5vdXQucHJpbnRsbigiTWFwYSBkZXNvcmRlbmFkbzoiKTsKCQlmb3IgKFN0cmluZyBrZXkgOiBteU1hcC5rZXlTZXQoKSkgewoJCSAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkxsYXZlL1ZhbG9yOiAiICsga2V5ICsgIi8iK215TWFwLmdldChrZXkpKTsKCQl9CgkJCgkJVmFsdWVDb21wYXJhdG9yIGJ2YyA9ICBuZXcgVmFsdWVDb21wYXJhdG9yKG15TWFwKTsKCQlUcmVlTWFwPFN0cmluZyxJbnRlZ2VyPiBtYXBhT3JkZW5hZG8gPSBuZXcgVHJlZU1hcDxTdHJpbmcsSW50ZWdlcj4oYnZjKTsJCQoJCQoJCW1hcGFPcmRlbmFkby5wdXRBbGwobXlNYXApOwoJCVN5c3RlbS5vdXQucHJpbnRsbigpOwoJCVN5c3RlbS5vdXQucHJpbnRsbigiTWFwYSBvcmRlbmFkbzoiKTsKCQlmb3IgKFN0cmluZyBrZXkgOiBtYXBhT3JkZW5hZG8ua2V5U2V0KCkpIHsKCQkgICAgU3lzdGVtLm91dC5wcmludGxuKCJMbGF2ZS9WYWxvcjogIiArIGtleSArICIvIittYXBhT3JkZW5hZG8uZ2V0KGtleSkpOwoJCX0KICAgICAgICB9CQp9CgpjbGFzcyBWYWx1ZUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yIHsKCglNYXAgX2Jhc2U7CglwdWJsaWMgVmFsdWVDb21wYXJhdG9yKE1hcCBiYXNlKSB7CgkgICAgICBfYmFzZSA9IGJhc2U7CgkgIH0KCgkgIHB1YmxpYyBpbnQgY29tcGFyZShPYmplY3QgYSwgT2JqZWN0IGIpIHsKCQlpbnQgdmFsdWUgPSAoKEludGVnZXIpX2Jhc2UuZ2V0KGIpKS5jb21wYXJlVG8oKEludGVnZXIpX2Jhc2UuZ2V0KGEpKTsKCSAgICAJcmV0dXJuIHZhbHVlOwoJfQp9