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.
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:Aquí, estamos filtrando el mapa por la clave especificada
filterValue
. Luego, estamos mapeando el flujo resultante aMap<string, string="">
obteniendo el valor de cada entrada. Finalmente, estamos utilizandofindFirst()
para devolver el primer elemento del flujo resultante, que es unMap<string, string="">
. Si el flujo está vacío, devolvemos un mapa vacío (Collections.emptyMap()
).Este código devuelve
Map<string, string="">
en lugar deMap<object, object="">
, que fue el resultado de tu código original.</object,></string,></string,></string,></string,></string,>