Tot el que heu de saber sobre el flux a Java

Aquest article us presentarà Stream a Java, un paquet introduït recentment a Java i us explicarà detalladament què pot fer.

Un nou paquet addicional a Java 8, conegut com S'ha afegit java.util.stream per a els usuaris per a una experiència de programació eficient. Un flux es pot definir com una seqüència d'objectes, que admeten múltiples mètodes. En aquest article exploraríem Stream in



Les següents indicacions es tractaran en aquest article,



Abans de començar amb aquest article sobre Stream In Java, fem una ullada a algunes funcions importants,

Transmissió a Java: funcions

  • Un flux no és una estructura de dades i no emmagatzema elements. Les col·leccions, les matrius o els canals d'E / S són d'on pren l'entrada.
  • La font del flux no es modifica després de fer-hi operacions. Per exemple, filtrar un flux simplement produeix un nou flux sense els elements filtrats, en lloc de modificar el flux original.
  • Les operacions d'agregació com ara filtrar, reduir, coincidir, cercar, etc. són compatibles amb el flux.
  • La mandra es pot considerar com una característica del flux, ja que avalua els codis només quan es requereix.
  • La visita dels elements presents al flux només es pot fer una vegada durant la vida d'un flux. Cal crear un nou flux per revisar els mateixos elements presents a la font.

Continuem amb aquest article sobre Stream a Java



Generació de corrents

Els fluxos es poden generar mitjançant els mètodes següents:

  • corrent() - Es torna un flux seqüencial.Col · leccióes considera com la font.
  • parallelStream (): es retorna un flux paral·lel. La col·lecció es considera la font.
List strings = Arrays.asList ('Hola', '', 'Hola', 'Hola', 'Bonjour', '', 'Namaste') Llista filtrada = strings.stream (). Filter (string ->! String. isEmpty ()). collect (Collectors.toList ())

Continuem amb aquest article sobre Stream a Java

Operacions en corrents:

Operacions intermèdies:

mapa



Els elements presents a la col·lecció es poden assignar a altres objectes segons el predicat passat com a argument. L'exemple següent s'utilitza per mostrar quadrats únics dels números mitjançant el mètode del mapa.

Llista num = Arrays.asList (5,4,4,2,3,3) Llista quadrats = num.stream (). Mapa (y -> y * y) .distinct (). Collect (Collectors.toList ())

filtre

Mitjançant aquest mètode es poden eliminar els elements segons un criteri.

Nom de la llista = Arrays.asList ('Dissabte', 'Diumenge', 'Dijous') Llista res = nom.stream (). Filtre (s-> s.startsWith ('S')). Collect (Collectors.toList () )

ordenat

El flux es pot ordenar mitjançant aquest mètode.

Nom de la llista = Arrays.asList ('Dissabte', 'Diumenge', 'Dijous') Llista res = nom.stream (). Ordenat (). Collect (Collectors.toList ())

Transmissió a Java: operacions de terminal:

recollir

El resultat del processament dels elements d'un flux es pot combinar mitjançant l'operació de recollida.

List num = Arrays.asList (4,3,2,5,6) Set res = num.stream (). Map (y-> y * y) .collect (Collectors.toSet ())

per cadascú

Aquest mètode s'utilitza per iterar tots els elements presents al flux.

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

reduir

Els elements del flux es poden reduir a un valor únic mitjançant aquest mètode.

List num = Arrays.asList (4,3,2,5) int even = num.stream (). Filter (x-> x% 2 == 0) .reduce (0, (res, i) -> res + i)

A la variable res se li assigna el valor 0 inicialment i se li afegeix i.

Continuem amb aquest article sobre Stream a Java

Filtratge

El codi es pot filtrar mitjançant el mètode de transmissió. A l'exemple següent, el preu dels instruments es filtra.

com utilitzar el charat a Java
import java.util. * import java.util.stream.Collectors classe Instrument {int num Nom de la cadena preu flotant Instrument públic (int num, Nom de la cadena, preu flotant) {this.num = num this.name = nom this.price = price}} public class Test {public static void main (String [] args) {Llista instrumentsList = new ArrayList () // Adding Products instrumentsList.add (instrument nou (1, 'Guitar', 15000f)) instrumentsList.add (nou Instrument (2, 'Piano', 18000f)) instrumentsList.add (nou Instrument (3, 'Flauta', 15000f)) instrumentsList.add (nou Instrument (4, 'Drums', 48000f)) instrumentsList.add (nou Instrument ( 5, 'Ukulele', 32000f)) Llista InstrumentPriceList2 = instrumentsList.stream () .filter (p -> p.price> 30000) // filtrar dades .map (p-> p.price) // obtenir el preu .collect ( Collectors.toList ()) // recollint com a llista System.out.println (InstrumentPriceList2)}}
 Sortida: 

[48000.0, 32000.0]

Continuem amb aquest article sobre Stream a Java

Iterant:

La iteració es pot realitzar utilitzant el flux a Java.

import java.util.stream. * public class Test {public static void main (String [] args) {Stream.iterate (1, element-> element + 1) .filter (element-> element% 4 == 0). límit (6) .forEach (System.out :: println)}}

Sortida:

4

8

12

16

20

24

Vegem un altre exemple per entendre el concepte de Stream a Java de manera més eficaç.

Exemple:

import java.util. * import java.util.stream. * public class Test {public static void main (String args []) {// creació d'una llista d'enters Llista num = Arrays.asList (6,7,8,9 ) // mitjançant el mètode del mapa Llista quadrats = num.stream (). mapa (y -> y * y). collect (Collectors.toList ()) System.out.println (quadrats) // creant una llista de dies de llista de cadenes = Arrays.asList ('divendres', 'dissabte', 'diumenge') // mètode de filtre Llista res = dies .stream (). filter (s-> s.startsWith ('S')). collect (Collectors.toList ()) System.out.println (res) // mètode ordenat Visualització de la llista = days.stream (). sorted (). collect (Collectors.toList ()) System.out.println (display) / / creant una llista d'enters Número de llista = Arrays.asList (6,9,5,7,1) // el mètode collect retorna un conjunt Set sqSet = number.stream (). map (y-> y * y) .collect (Collectors.toSet ()) System.out.println (sqSet) // forEach method num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / reduce method int even = num.stream (). filter (x-> x% 2 == 0) .reduce (0, (result, i) -> result + i) System.out.println (even)}}

Sortida:

[36, 49, 64, 81]

[Dissabte Diumenge]

[Divendres, dissabte, diumenge]

[81, 49, 1, 36, 25]

36

49

64

81

14

Els fluxos permeten a l'usuari realitzar operacions efectivament sobre els elements.

Així hem arribat al final d’aquest article sobre ‘Stream in Java’. Si voleu obtenir més informació, consulteu el programa Java Training d’Edureka, una empresa d’aprenentatge en línia de confiança. El curs de formació i certificació Java J2EE i SOA d’Edureka està dissenyat per formar-vos tant per a conceptes bàsics com avançats de Java, juntament amb diversos marcs Java com Hibernate & Spring

Tens alguna pregunta? Si us plau, mencioneu-lo a la secció de comentaris d’aquest bloc i us respondrem el més aviat possible.