logo

Transmitir en Java

Introducida en Java 8, Stream API se utiliza para procesar colecciones de objetos. Una secuencia en Java es una secuencia de objetos que admite varios métodos que pueden canalizarse para producir el resultado deseado.

Uso de Stream en Java

Los usos de Stream en Java se mencionan a continuación:

  1. Stream API es una forma de expresar y procesar colecciones de objetos.
  2. Permítanos realizar operaciones como filtrado, mapeo, reducción y clasificación.

¿Cómo crear una secuencia Java?

La creación de Java Stream es uno de los pasos más básicos antes de considerar las funcionalidades de Java Stream. A continuación se muestra la sintaxis sobre cómo declarar Java Stream.



Sintaxis

Stream stream;>

Aquí T es una clase, un objeto o un tipo de datos según la declaración.

Funciones de secuencia de Java

Las características de Java Stream se mencionan a continuación:

  • Una secuencia no es una estructura de datos, sino que recibe información de las colecciones, matrices o canales de E/S.
  • Las transmisiones no cambian la estructura de datos original, solo proporcionan el resultado según los métodos canalizados.
  • Cada operación intermedia se ejecuta de forma diferida y, como resultado, devuelve una secuencia, por lo que se pueden canalizar varias operaciones intermedias. Las operaciones de terminal marcan el final de la secuencia y devuelven el resultado.

Diferentes operaciones en corrientes

Hay dos tipos de Operaciones en Streams:

  1. Operaciones Intermedias
  2. Terminar operaciones

Operaciones Intermedias

operaciones de flujo java

cómo leer el archivo csv en java

Las operaciones intermedias son los tipos de operaciones en las que se encadenan varios métodos seguidos.

Características de las operaciones intermedias

  1. Los métodos están encadenados.
  2. Las operaciones intermedias transforman una corriente en otra corriente.
  3. Permite el concepto de filtrado en el que un método filtra datos y los pasa a otro método después del procesamiento.

Beneficio de Java Stream

Existen algunos beneficios por los cuales usamos Stream en Java como se menciona a continuación:

  • Sin almacenamiento
  • Canal de funciones
  • pereza
  • puede ser infinito
  • Se puede paralelizar
  • Se puede crear a partir de colecciones, matrices, líneas de archivos, métodos en Stream, IntStream, etc.

Operaciones intermedias importantes

Hay algunas operaciones intermedias que se mencionan a continuación:

1. mapa()

El método map se utiliza para devolver una secuencia que consta de los resultados de aplicar la función dada a los elementos de esta secuencia.

métodos abstractos
List number = Arrays.asList(2,3,4,5); List square = number.stream().map(x->x*x).collect(Collectors.toList());>

2. filtro()

El método de filtro se utiliza para seleccionar elementos según el predicado pasado como argumento.

List names = Arrays.asList('Reflection','Collection','Stream'); List result = names.stream().filter(s->s.startsWith('S')).collect(Collectors.toList());>

3. ordenado()

El método ordenado se utiliza para ordenar la secuencia.

List names = Arrays.asList('Reflection','Collection','Stream'); List result = names.stream().sorted().collect(Collectors.toList());>

Operaciones terminales

Las Operaciones de Terminal son el tipo de Operaciones que devuelven el resultado. Estas operaciones no se procesan más, solo devuelven un valor de resultado final.

Operaciones terminales importantes

Hay algunas operaciones de terminal que se mencionan a continuación:

1. recoger()

El método de recopilación se utiliza para devolver el resultado de las operaciones intermedias realizadas en la secuencia.

List number = Arrays.asList(2,3,4,5,3); Set square = number.stream().map(x->x*x).collect(Collectors.toSet());>

2. para cada()

El método forEach se utiliza para recorrer cada elemento de la secuencia.

List number = Arrays.asList(2,3,4,5); number.stream().map(x->x*x).forEach(y->System.out.println(y));>

3. reducir()

El método de reducción se utiliza para reducir los elementos de una secuencia a un solo valor. El método de reducción toma un BinaryOperator como parámetro.

List number = Arrays.asList(2,3,4,5); int even = number.stream().filter(x->x%2==0).reduce(0,(ans,i)-> ans+i);>

Aquí a una variable se le asigna 0 como valor inicial y se le agrega i.

Nota: Las operaciones intermedias se ejecutan según el concepto de evaluación diferida, que garantiza que cada método devuelva un valor fijo (operación terminal) antes de pasar al siguiente método.

Ejemplo de secuencia de Java

Java

entero java a cadena


clave única de mysql



// Java program to demonstrate> // the use of stream in java> import> java.util.*;> import> java.util.stream.*;> class> Demo {> >public> static> void> main(String args[])> >{> >// create a list of integers> >List number = Arrays.asList(>2>,>3>,>4>,>5>);> >// demonstration of map method> >List square> >= number.stream()> >.map(x ->x*x)> >.collect(Collectors.toList());> >// create a list of String> >List names = Arrays.asList(> >'Reflection'>,>'Collection'>,>'Stream'>);> >// demonstration of filter method> >List result> >= names.stream()> >.filter(s ->s.startsWith(>'S'>))> >.collect(Collectors.toList());> > >System.out.println(result);> >// demonstration of sorted method> >List show> >= names.stream()> >.sorted()> >.collect(Collectors.toList());> > >System.out.println(show);> >// create a list of integers> >List numbers> >= Arrays.asList(>2>,>3>,>4>,>5>,>2>);> >// collect method returns a set> >Set squareSet> >= numbers.stream()> >.map(x ->x*x)> >.collect(Collectors.toSet());> > >System.out.println(squareSet);> >// demonstration of forEach method> >number.stream()> >.map(x ->x*x)> >.forEach(y ->System.out.println(y));> >// demonstration of reduce method> >int> even> >= number.stream()> >.filter(x ->x %>2> ==>0>)> >.reduce(>0>, (ans, i) ->respuesta + i);> >System.out.println(even);> >}> }>

>

>

Producción

[4, 9, 16, 25] [Stream] [Collection, Reflection, Stream] [16, 4, 9, 25] 4 9 16 25 6>

Puntos/observaciones importantes de Java Stream

  1. Una secuencia consta de una fuente seguida de cero o más métodos intermedios combinados (canalizados) y un método terminal para procesar los objetos obtenidos de la fuente según los métodos descritos.
  2. Stream se utiliza para calcular elementos según los métodos canalizados sin alterar el valor original del objeto.