Header Ads Widget

Ticker

6/recent/ticker-posts

Programa Java para ordenar un mapa por valores

En este programa, aprenderá a ordenar un mapa determinado por valores en Java.

Ejemplo: ordenar un mapa por valores

  1. import java.util.*;
  2. public class SortMap {
  3. public static void main(String[] args) {
  4. LinkedHashMap<String, String> capitals = new LinkedHashMap<>();
  5. capitals.put("Nepal", "Kathmandu");
  6. capitals.put("India", "New Delhi");
  7. capitals.put("United States", "Washington");
  8. capitals.put("England", "London");
  9. capitals.put("Australia", "Canberra");
  10. Map<String, String> result = sortMap(capitals);
  11. for (Map.Entry<String, String> entry : result.entrySet())
  12. {
  13. System.out.print("Key: " + entry.getKey());
  14. System.out.println(" Value: " + entry.getValue());
  15. }
  16. }
  17. public static LinkedHashMap<String, String> sortMap(LinkedHashMap<String, String> map) {
  18. List<Map.Entry<String, String>> capitalList = new LinkedList<>(map.entrySet());
  19. Collections.sort(capitalList, (o1, o2) -> o1.getValue().compareTo(o2.getValue()));
  20. LinkedHashMap<String, String> result = new LinkedHashMap<>();
  21. for (Map.Entry<String, String> entry : capitalList)
  22. {
  23. result.put(entry.getKey(), entry.getValue());
  24. }
  25. return result;
  26. }
  27. }
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 LinkedHashMapcon 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 LinkedHashMapresultado y la devolvemos.
De vuelta en el main()método, recorremos cada elemento del mapa e imprimimos su clave y valor.

Publicar un comentario

0 Comentarios