En este programa, aprenderá a ordenar un mapa determinado por valores en Java.
Ejemplo: ordenar un mapa por valores
import java.util.*;
public class SortMap {
public static void main(String[] args) {
LinkedHashMap<String, String> capitals = new LinkedHashMap<>();
capitals.put("Nepal", "Kathmandu");
capitals.put("India", "New Delhi");
capitals.put("United States", "Washington");
capitals.put("England", "London");
capitals.put("Australia", "Canberra");
Map<String, String> result = sortMap(capitals);
for (Map.Entry<String, String> entry : result.entrySet())
{
System.out.print("Key: " + entry.getKey());
System.out.println(" Value: " + entry.getValue());
}
}
public static LinkedHashMap<String, String> sortMap(LinkedHashMap<String, String> map) {
List<Map.Entry<String, String>> capitalList = new LinkedList<>(map.entrySet());
Collections.sort(capitalList, (o1, o2) -> o1.getValue().compareTo(o2.getValue()));
LinkedHashMap<String, String> result = new LinkedHashMap<>();
for (Map.Entry<String, String> entry : capitalList)
{
result.put(entry.getKey(), entry.getValue());
}
return result;
}
}
Cuando ejecutas el programa, la salida será:
Clave: Australia Valor: Canberra Clave: Nepal Valor: Katmandú Clave: Inglaterra Valor: Londres Clave: India Valor: Nueva Delhi Clave: Estados Unidos Valor: Washington
En el programa anterior, tenemos un
LinkedHashMap
con países y sus respectivas capitales almacenados en capitales variables .
Tenemos un método
sortMap()
que toma un mapa hash vinculado y devuelve el mapa hash vinculado ordenado.
Dentro del método, convertimos el mapa hash en una lista capitalList . Luego, usamos un
sort()
método que toma una lista y un comparador.
En nuestro caso, el comparador es la lambda que compara
(o1, o2) -> o1.getValue().compareTo(o2.getValue())
dos valores de los elementos en la lista o1 y o2 .
Después de la operación, obtenemos la lista ordenada capitalList . Luego, simplemente convertimos la lista al
LinkedHashMap
resultado y la devolvemos.
De vuelta en el
main()
método, recorremos cada elemento del mapa e imprimimos su clave y valor.
0 Comentarios
Dejanos tu comentario para seguir mejorando!