¿Cómo encontrar la última fecha del valor mapa dado en Java

aprender maravilloso:

Estoy teniendo un mapa hash con debajo de los valores, de los valores que hemos fecha como el tipo de datos de cadena. Me gustaría comparar todas las fechas que se encuentra disponible en el mapa y extraer sólo una clave-valor que tiene una fecha muy reciente.

Me gustaría comparar con los valores de las claves no.

He incluido el código de abajo

import java.util.HashMap;
import java.util.Map;

public class Test {

  public static void main(String[] args) {

      Map<String, String> map = new HashMap<>();
      map.put("1", "1999-01-01");
      map.put("2", "2013-10-11");
      map.put("3", "2011-02-20");
      map.put("4", "2014-09-09");

      map.forEach((k, v) -> System.out.println("Key : " + k + " Value : " + v));
    }

}

El resultado esperado de este es:

Clave 4 Valor 09/09/2014

WJS:

Esto debería proporcionar la más nueva (aka mayor) Fecha en comparación con los demás.

      String max = map.values().stream().reduce("0000-00-00",
            (a, b) -> b.compareTo(a) >= 0 ? b
                  : a);

Si también desea que la clave, a continuación, hacer esto y devolver un Map.Entry. Requiere Java 9+

         Entry<String, String> ent =
            map.entrySet().stream().reduce(Map.entry("0", "0000-00-00"),
                  (a, b) -> b.getValue().compareTo(a.getValue()) >= 0 ? b
                        : a);

         System.out.println(ent.getKey() + " -> " ent.getValue());

Esto supone su mapa no está vacío. si está vacío, entonces se devuelve un valor nulo. Funciona con Java 8+

        Entry<String, String> ent = map.entrySet().stream().reduce(
            (a, b) -> b.getValue().compareTo(a.getValue()) >= 0 ? b
                  : a).orElseGet(() -> null);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=310488&siteId=1
Recomendado
Clasificación