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.