es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Ordena un Map por fecha para encontrar el máximo y el mínimo.

Tengo un mapa hash con el formato de HashMap<Long, ZonedDateTime>.
Por ejemplo,

[(100, 01/01/2018 - 13:45:30 +0000),
(101, 02/05/2018 - 13:45:30 +0000),
(102, 02/01/2012 - 13:45:30 +0000)].

Quiero esta salida:

(102, 02/01/2012 - 13:45:30 +0000)
(100, 01/01/2018 - 13:45:30 +0000)
(101, 02/05/2018 - 13:45:30 +0000)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para imprimir HashMap<long, zoneddatetime=””> en el formato especificado, puedes usar el siguiente código:

    HashMap<long, zoneddatetime=""> map = new HashMap<>();
    map.put(100L, ZonedDateTime.parse("2018-01-01T13:45:30Z"));
    map.put(101L, ZonedDateTime.parse("2018-02-05T13:45:30Z"));
    map.put(102L, ZonedDateTime.parse("2012-02-01T13:45:30Z"));
    
    List<><long, zoneddatetime="">> list = new ArrayList<>(map.entrySet());
    Collections.sort(list, Comparator.comparing(Map.Entry::getValue));
    
    for (Map.Entry<long, zoneddatetime=""> entry : list) {
        System.out.println(entry.getKey() + ", " + entry.getValue().toString());
    }
    

    Este código crea un HashMap<long, zoneddatetime=””> con los valores dados. Luego crea una lista de Map.Entry’s a partir del HashMap y la ordena según el valor (que es un ZonedDateTime). Finalmente, itera a través de la lista ordenada e imprime cada entrada en el formato deseado.</long,></long,></long,></long,></long,>

Comments are closed.