Aqui veremos alguns show cases de utilização da API de stream do Java 8, uma API poderosa para manipulação de coleções
No exemplo a seguir vemos uma simples interação sobre uma lista
Como pode ver as collections java agora expõe um método stream(), para que você possa usar a API, no exemplo estamos apenas printando cada item, você pode perceber também que podemos fazer isso por uso de lambdas, ou usando o atalho da chamada.
Digamos agora que queremos filtrar nossa lista e recuperar apenas os elementos "a", "b" e "c", a API de stream fornece um método para o mesmo,
lembrando apenas que a maioria dos métodos da API retornam novas Streams. Veja a seguir
Nesse caso se quisermos na verdade coletar esse resultado como uma nova lista, basta usarmos o método collect
Podemos utilizar também o método map() para manipular o dado da lista, veja a seguir
O método map irá iterar sobre cada item, e retorna uma nova stream com as alterações realizadas
Agora vamos tentar fazer algo mais complicado, criaremos uma lista de um objeto complexo User, iremos filtrar pelo nome e em seguida vamos coletar a data de nascimento de cada item ordenando por maior para menor
Veja que podemos encadear varias chamadas para enfim obtermos nosso resultado, isso torna a API bastante poderosa e fluente
Agora vamos tentar descobrir qual foi a contribuição de todos os usuários que possuem user no nome, para isso usaremos o método reduce()
O método reduce recebe como primeiro parâmetro o valor inicial para a agregação, em seguida como segundo parâmetros temos uma expressão lambda onde o primeiro parâmetro é o valor parcial das outras interações e o segundo o valor atual da interação.
Podemos também agrupar registros usando collect(), como pode ser visto no exemplo abaixo
Com isso vimos alguns usos basicos da API de stream do Java, você pode estudar mais a fundo no link