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.

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,>

Tags:  , ,

Answer

  1. Avatar for 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étodo collect, 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.

Comments are closed.