Java 8 Streams – Llamar a “map” durante las operaciones de flujo sin guardar en una variable.
No pude encontrar muchas respuestas a esto, aunque supongo que no es posible, pero tenía curiosidad: ¿hay alguna manera en los streams de Java8 de “referir” o “llamar” al HashMap que se crea a través de .collectors(Collectors.toMap(key -> "key", val -> "val"))
? Sé que puedo guardar esta reducción resultante que crea el Map en una variable Map<string, string=""> myMap
, pero aún así tuve que realizar operaciones en este HashMap resultante y quería mantener el flujo, así que quería hacer algo como esto:
myHashSet.stream()
.filter(i -> i != null)
.collectors(Collectors.toMap(key -> "key", val -> "val")
.forEach((k,v) -> {
// AQUÍ ES DONDE QUIERO LLAMAR AL MAP CREADO ANTERIORMENTE
if( MAP.contains("someRandomValue") {
}
}));
Supongo que no se puede hacer esto, pero esperaba que hubiera algún método o algo así para no tener que “matar” el stream, es decir, guardar el Map en una variable y luego proceder a transmitirlo nuevamente, etc…</string,>
davy.ai
Desafortunadamente, no es posible referirse o llamar al HashMap que se crea mediante el método
.collectors(Collectors.toMap(key -> "key", val -> "val"))
en el flujo de Java8. Una vez que se utiliza el métodocollect
, se retorna el Map resultante y se cierra el flujo. Si se necesitan realizar más operaciones en el Map, es necesario guardarlo en una variable y utilizar esa variable para manipular el Map fuera del flujo.