in

Método flatMap () en Java 8

flatmap method in java 8

los Arroyo API se introdujo en Java 8 que se utiliza para procesar las colecciones de objetos. Se puede utilizar importando el java.util.stream paquete. En esta sección, discutiremos el Stream.flatMap () método de la API Stream. Además, discutiremos el diferencias clave entre el método Stream.flatMap () y Stream.map () en Java 8.

Método flatMap () en Java 8

Antes de pasar al tema, primero entenderemos el Stream.map () método. Porque el mapa plano() El método se basa en el mapa() método.

Método Java Stream.map ()

los Stream.map () El método realiza una operación intermedia utilizando la función de mapeador. Produce una nueva secuencia para cada elemento. Transforma todos los flujos en un solo flujo para proporcionar el resultado. por lo tanto, cada elemento de la secuencia se convierte en una nueva secuencia.

Sintaxis:

R: Es un parámetro de tipo que representa el tipo de elemento de la nueva secuencia.

mapeador: Es un parámetro que no interfiere, una función sin estado que se aplica a cada elemento.

Ejemplo del método map ()

Considere la declaración anterior para un mapa del arroyo. Crea una secuencia resultante usando el mapa (). En cada iteración, map () crea una secuencia separada con el resultado al ejecutar la función de mapeador. Por fin, map () transforma todos los flujos en un solo flujo.

MapExample.java

Producción:

Stream After applying the map() function: 
24
90
134
38
174
4
18

Método Java Stream.flatMap ()

En Java 8 Streams, el método flatMap () aplica la operación como una función de mapeador y proporciona un flujo de valores de elementos. Significa que en cada iteración de cada elemento, el método map () crea una nueva secuencia separada. Al utilizar el mecanismo de aplanamiento, fusiona todas las corrientes en una única corriente resultante. En resumen, se utiliza para convertir un Stream of Stream en una lista de valores.

Sintaxis:

El método toma una función como argumento. Acepta T como parámetro y devuelve un flujo de R.

R: Es un parámetro de tipo que representa el tipo de elemento de la nueva secuencia.

mapeador: Es un parámetro que es una función sin estado y no interferente que se aplica a cada elemento. Produce una corriente de nuevos valores.

En resumen, podemos decir que el método flatMap () ayuda a convertir Transmitir > para Transmitir . Realiza aplastamiento (aplanar o aplanar) y cartografía (mapa), simultáneamente. El método Stream.flatMap () combina ambas operaciones, es decir, plano y mapa.

Entendamos el significado de aplanamiento.

¿Qué es el aplanamiento?

Aplastamiento es el proceso de convertir varias listas de listas y fusionar todas esas listas para crear una única lista que contenga todos los elementos de todas las listas.

Ejemplo de aplanamiento

Considere las siguientes listas de listas:

Antes del aplanamiento: [[1, 2, 3, 4], [7, 8, 9, 0], [5, 6], [12, 18, 19, 20, 17], [22]]

Después del aplanamiento: [1, 2, 3, 4, 7, 8, 9, 0, 5, 6, 12, 18, 19, 20, 17, 22]

Ejemplo del método flatMap ()

Podemos usar un método flatMap () en una secuencia con la función de mapeador List :: stream. Al ejecutar la operación de terminal de flujo, cada elemento de flatMap () proporciona un flujo separado. En la fase final, el método flatMap () transforma todas las transmisiones en una nueva transmisión. En la secuencia anterior, observamos que no contiene valores duplicados.

Creemos un programa Java y usemos el método flatMap ().

FlatMapExample.java

Producción:

List Before Applying mapping and Flattening: 
[Printer, Mouse, Keyboard, Motherboard, Scanner, Projector, Lighten, Pen Drive, Charger, WIFI Adapter, Cooling Fan, CPU Cabinet, WebCam, USB Light, Microphone]
List After Applying Mapping and Flattening Operation: 
[Printer, Mouse, Keyboard, Motherboard, Scanner, Projector, Light Pen, Pen Drive, Charger, WIFI Adapter, Cooling Fan, CPU Cabinet, WebCam, USB Light, Microphone]

Ahora, hemos entendido ambos métodos de la clase Stream. Dado que podemos señalar fácilmente las diferencias clave entre ellos.

Stream.flatMap () vs. Stream.map ()

La siguiente tabla describe las diferencias clave entre Stream.flatMap () y Stream.map ().

Método flatMap () en Java 8

Stream.flatMap () Stream.map ()
Procesa el flujo de valores del flujo. Procesa la corriente de valores.
Realiza el mapeo junto con el aplanamiento. Realiza mapeo solamente.
Transforma datos de Stream> transmitir. Transforma datos de Stream para transmitir.
Utiliza el mapeo de uno a varios. Utiliza mapeo uno a uno.
Su función de mapeador produce múltiples valores (flujo de valores) para cada valor de entrada. Su función de mapeador produce valores únicos para cada valor de entrada.
Utilice el método flatMap () cuando la función del asignador esté produciendo varios valores para cada valor de entrada. Utilice el método map () cuando la función del asignador esté produciendo valores únicos para cada valor de entrada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

omegle video chat on android

Omegle Video Chat en Android

smurfs and the magic flute

¿Cuántas películas de pitufos hay?