Java 8 — Streams API — Português.

Filipe Munhoz
2 min readNov 15, 2021

--

O recurso de Streams API no Java, reduz a quantidade de linhas necessárias para escrever código, tendo uma escrita mais limpa e de fácil entendimento.

Utilizaremos as mais variadas operações, agregações e agrupamentos com exemplos práticos que nos facilitam a vida no dia a dia.

Iremos trabalhar com 3 tipos de listas. A primeira é uma lista de inteiros, a segunda uma lista de strings e a terceira uma lista de objetos do tipo "Banda".

Lista de Inteiros

List<Integer> listaInteger = List.of(2, 7, 16, 19, 32, 1, 6, 23);

Lista de Strings

List<String> listaString = List.of("Angra", "Tim Maia", "Raimundos", "Matanza", "Ultraje a Rigor");

Lista de Bandas

List<Banda> listaBandas = List.of(
new Banda("Angra", 200, 23000, "São Paulo"),
new Banda("Tim Maia", 100, 23000, "Rio de Janeiro"),
new Banda("Raimundos", 150, 25000, "Brasilia"),
new Banda("Matanza", 340, 56000, "São Paulo"),
new Banda("Ultraje a Rigor", 45, 67000, "São Paulo"));

Exemplos práticos

Agora daremos início aos exemplos para diversas situações. O código fonte pode ser encontrado completo no github.

Distinct

Coletar valores distintos caso haja duplicados.

Limit

Coletando valores limitando a apenas 2 números.

Skip

Pular os dois primeiros valores e retornar os demais.

Maiúsculas

Retornando uma lista de strings com os valores maiúsculos

Tamanho

Retornando o tamanho de cada banda

Ocorrências

Alguma ocorrência

Procura na lista de bandas se alguma delas é da cidade de São Paulo.

Todas ocorrências

Procura na lista de bandas se todas elas pertencem a São Paulo.

Nenhuma ocorrência

Procura se de todas as bandas da lista, nenhuma delas pertencem ao Acre.

Primeira ocorrência

Retornar a primeira ocorrência.

Soma

Somar o faturamento de todas as bandas juntas.

Menor

Retorna o menor faturamento entre as bandas.

Maior

Retorna o maior faturamento entre as bandas.

Enviando o resultado para uma Collection

Lista

Coletando o nome de todas as bandas para uma nova lista.

Set

Coletando o nome de todas as cidades para um Set. Veja que devido a característica dessa estrutura de dados, os nomes não se repetem.

Agregação

Contagem

Contar quantas bandas tiveram mais de 100 discos lançados.

Menor Faturamento

Retornar o objeto com a banda que obteve o menor faturamento da lista.

Maior Faturamento

Retornar o objeto com a banda que obteve o maior faturamento da lista.

Média de Faturamento

Retornar a média de faturamento de cada banda.

Agrupamento

Cidade

Agrupar todas as bandas por cidade.

Faturamento

Agrupar o faturamento de todas as bandas por cidade.

Obrigado pela leitura.

Exemplo completo no Github:

Referências:

https://www.oracle.com/br/technical-resources/articles/java-stream-api.html
https://medium.com/javarevisited/stream-api-most-useful-operations-28e3988002d0

--

--

Filipe Munhoz
Filipe Munhoz

Written by Filipe Munhoz

Software Engineer at Itaú Unibanco

No responses yet