Tudo o que você precisa saber sobre o Stream em Java



Este artigo apresentará você ao Stream em Java, um pacote recentemente introduzido em Java e uma explicação detalhada sobre o que ele pode fazer.

Um novo pacote adicional em Java 8, conhecido como java.util.stream foi adicionado para os usuários para uma experiência de programação eficiente. Um fluxo pode ser definido como uma sequência de objetos, suportando vários métodos. Neste artigo, exploraríamos o Stream em

As dicas a seguir serão abordadas neste artigo,





Antes de começarmos com este artigo sobre Stream em Java, vamos dar uma olhada em alguns recursos importantes,

Stream In Java: Recursos

  • Um fluxo não é uma estrutura de dados e não armazena elementos. Coleções, matrizes ou canais de E / S é de onde ele obtém a entrada.
  • A origem do fluxo permanece inalterada após as operações serem realizadas nele. Por exemplo, filtrar um fluxo simplesmente produz um novo fluxo sem os elementos filtrados, em vez de modificar o fluxo original.
  • As operações de agregação, como filtrar, reduzir, corresponder, localizar, etc, são suportadas pelo fluxo.
  • A preguiça pode ser considerada uma característica do stream, pois avalia os códigos apenas quando necessário.
  • A visitação dos elementos presentes no riacho só pode ser feita uma vez durante a vida útil de um riacho. Um novo fluxo deve ser criado para revisitar os mesmos elementos presentes na fonte.

Continuando com este artigo sobre Stream em Java



Gerando Streams

Os fluxos podem ser gerados pelos seguintes métodos:

  • corrente() - Um fluxo sequencial é retornado.Coleçãoé considerado como a fonte.
  • parallelStream () - Um fluxo paralelo é retornado. A coleção é considerada como a fonte.
Listar strings = Arrays.asList ('Hello', '', 'Hi', 'Hola', 'Bonjour', '', 'Namaste') List filtrado = strings.stream (). Filter (string ->! String. isEmpty ()). collect (Collectors.toList ())

Continuando com este artigo sobre Stream em Java

Operações em streams:

Operações intermediárias:

mapa



Os elementos presentes na coleção podem ser mapeados para outros objetos de acordo com o predicado passado como argumento. O exemplo a seguir é usado para exibir quadrados únicos dos números usando o método de mapa.

List num = Arrays.asList (5,4,4,2,3,3) List squares = num.stream (). Map (y -> y * y) .distinct (). Collect (Collectors.toList ())

filtro

Os elementos podem ser removidos com base em um critério usando este método.

List name = Arrays.asList ('Saturday', 'Sunday', 'Thursday') List res = name.stream (). Filter (s-> s.startsWith ('S')). Collect (Collectors.toList () )

classificado

O fluxo pode ser classificado usando este método.

List name = Arrays.asList ('Saturday', 'Sunday', 'Thursday') List res = name.stream (). Sorted (). Collect (Collectors.toList ())

Stream In Java: Operações de Terminal:

recolher

O resultado do processamento nos elementos de um fluxo pode ser combinado usando a operação de coleta.

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

para cada

o que é substring em java

Este método é usado para iterar por meio de cada elemento presente no fluxo.

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

reduzir

Os elementos do fluxo podem ser reduzidos a um único valor usando este método.

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

A variável res recebe inicialmente o valor 0 e i é adicionado a ela.

Continuando com este artigo sobre Stream em Java

Filtrando

O código pode ser filtrado usando o método stream. No exemplo a seguir, o preço dos instrumentos é filtrado.

import java.util. * import java.util.stream.Collectors class Instrument {int num String name float price public Instrument (int num, String name, float price) {this.num = num this.name = name this.price = price}} public class Test {public static void main (String [] args) {List instrumentList = new ArrayList () // Adicionando produtos instrumentList.add (new Instrument (1, 'Guitar', 15000f)) InstrumentsList.add (new Instrumento (2, 'Piano', 18000f)) instrumentsList.add (novo Instrumento (3, 'Flauta', 15000f)) instrumentsList.add (novo Instrumento (4, 'Bateria', 48000f)) instrumentsList.add (novo instrumento ( 5, 'Ukulele', 32000f)) Lista InstrumentPriceList2 = instrumentsList.stream () .filter (p -> p.price> 30000) // filtrando dados .map (p-> p.price) // buscando preço .collect ( Collectors.toList ()) // coletando como lista System.out.println (InstrumentPriceList2)}}
 Resultado: 

[48000,0, 32000,0]

Continuando com este artigo sobre Stream em Java

Iterando:

A iteração pode ser realizada usando stream em java.

declaração if na consulta sql
import java.util.stream. * public class Teste {public static void main (String [] args) {Stream.iterate (1, element-> element + 1) .filter (element-> element% 4 == 0). limit (6) .forEach (System.out :: println)}}

Resultado:

4

8

12

16

vinte

24

Vamos dar uma olhada em outro exemplo, para entender o conceito de Stream em java de forma mais eficaz.

Exemplo:

import java.util. * import java.util.stream. * public class Test {public static void main (String args []) {// criando uma lista de inteiros List num = Arrays.asList (6,7,8,9 ) // usando o método de mapa List squares = num.stream (). map (y -> y * y). collect (Collectors.toList ()) System.out.println (squares) // criando uma lista de dias de String List = Arrays.asList ('Friday', 'Saturday', 'Sunday') // método de filtro List res = days .stream (). filter (s-> s.startsWith ('S')). collect (Collectors.toList ()) System.out.println (res) // método classificado List display = days.stream (). Sorted (). collect (Collectors.toList ()) System.out.println (display) / / criar uma lista de números inteiros List number = Arrays.asList (6,9,5,7,1) // método de coleta retorna um conjunto Set sqSet = number.stream (). map (y-> y * y) .collect (Collectors.toSet ()) System.out.println (sqSet) // forEach método num.stream (). Map (y-> y * y) .forEach (x-> System.out.println (x)) / / reduzir método int par = num.stream (). filtro (x-> x% 2 == 0) .reduzir (0, (resultado, i) -> resultado + i) System.out.println (par)}}

Resultado:

[36, 49, 64, 81]

[Sábado domingo]

[Sexta-feira sábado Domingo]

[81, 49, 1, 36, 25]

36

como usar classificar c ++

49

64

81

14

Os fluxos permitem que o usuário execute operações nos elementos de forma eficaz.

Assim, chegamos ao fim deste artigo sobre ‘Fluxo em Java’. Se você deseja aprender mais, confira o Treinamento em Java da Edureka, uma empresa confiável de aprendizado online. O curso de certificação e treinamento Java J2EE e SOA da Edureka foi projetado para treiná-lo tanto para os conceitos básicos e avançados do Java, juntamente com várias estruturas Java como Hibernate e Spring.

Tem alguma questão para nós? Mencione isso na seção de comentários deste blog e entraremos em contato com você o mais breve possível.