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.

Transformación de HashMap utilizando corrientes.

Tengo un Map<Long, Map<String, String>> map, y tengo que filtrarlo por clave y obtener solo el valor.
Estoy intentando hacer algo así:

java
Map<Object, Object> resultMap = map.entrySet().stream()
.filter(x -> x.getKey().equals(filterValue))
.map(Map.Entry::getValue).collect(Collectors.toMap(k -> k,v -> v));

Pero obtengo un Map<Object, Object> en lugar de un Map<String, String>.

Quizás haya una mejor manera de hacerlo.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para filtrar Map<long,></long,><string, string="">> por clave y obtener solo el valor, puedes modificar tu código de la siguiente manera:

    Map<string, string=""> resultMap = map.entrySet().stream()
      .filter(x -> x.getKey().equals(filterValue))
      .map(Map.Entry::getValue)
      .findFirst()
      .orElse(Collections.emptyMap());
    

    Aquí, estamos filtrando el mapa por la clave especificada filterValue. Luego, estamos mapeando el flujo resultante a Map<string, string=""> obteniendo el valor de cada entrada. Finalmente, estamos utilizando findFirst() para devolver el primer elemento del flujo resultante, que es un Map<string, string="">. Si el flujo está vacío, devolvemos un mapa vacío (Collections.emptyMap()).

    Este código devuelve Map<string, string=""> en lugar de Map<object, object="">, que fue el resultado de tu código original.</object,></string,></string,></string,></string,></string,>

Comments are closed.