https://youtu.be/FRchUYHrDxY
- A API de streams foi lançada no Java 8 para trazer mais facilidade na manipulação de dados
- Estilo de programação funcional
- O framework de coleções do Java possui mais de 18 anos, tendo surgido com a versão 2 da linguagem, mas no decorrer desse tempo sofreu apenas algumas evoluções.
- Até o Java 8, a principal evolução havia sido a adição de recursos devido à criação de Generics, no Java 5, o que permitiu a criação de coleções “tipadas”.
- trata-se de uma poderosa solução para processar coleções de maneira declarativa, ao invés da tradicional e burocrática forma imperativa.
Exemplo de somar (Java 7)
O código abaixo ilustra um exemplo de código para somar todos valores de números pares:
private static int somaPares(List<Integer> list) {
int soma = 0;
for (int num : list) {
if (num % 2 == 0) {
soma += num;
}
}
return soma;
}
Problemas:
- Iteração manual
- Dificuldade na leitura da intenção
- Dificuldade em paralelizar (caso a lista seja muito grande)
Streams
- Sequencia de dados que permite realizar operações sequenciais ou de forma paralela
- Não são coleções, foco é na computação.
- Não armazena dados
- Permite realizar um pipeline de operações