Stream API: como diminuir a escrita do código Java

No items found.
7/4/2020
Jaime Junior
Jaime Junior
Tech Lead

Apaixonado por desenvolvimento de software e sempre em busca de mais conhecimento

Está sem tempo para ler? Aperte o play para escutar o artigo.

O recurso disponível a partir do Java 8 ainda é visto por alguns desenvolvedores como algo complexo. O objetivo deste artigo é esclarecer um pouco mais sobre a interface stream com alguns exemplos práticos e simples de se reproduzir. 

Antes de iniciar nosso estudo com Stream API, é importante falarmos um pouco sobre programação funcional e expressões lambda. Bora?

O intuito não é aprofundar nesse assunto, mas é de extrema importância ter uma pequena introdução para entender melhor os cenários que vou mostrar e, assim, chegar no nosso objetivo.

O que é programação funcional?

É um paradigma de programação, basicamente. Assim como temos Programação orientada a Objetos (POO) ou Programação imperativa, temos a Programação Funcional. Em linguagens multi-paradigmas podemos usar POO e programação funcional.

Expressão lambda em Java

Uma expressão lambda é uma função anônima. Pensando em orientação a objetos em java, uma expressão lambda não pode ser vista como uma função pois não está associada a uma classe onde funções não podem existir fora de um objeto.

Mas na programação funcional, você pode definir funções, fornecer variáveis de referência e passá-las como argumentos de método e muito mais. Geralmente uma expressão lambda é escrita como parâmetro para uma função. 


Veja um exemplo simples:

Formula : (x) -> 10*x / 2
Recebemos um parâmetro x que será multiplicado por 10 e dividido por 2

Podemos executar desta maneira em Java:

stream api


Depois da breve introdução, vamos ao Stream API.

O que é a Stream API?

É um recurso que ajuda a manipular coleções de uma maneira simples e eficiente seguindo os princípios da programação funcional. Isso é interessante pois o controle de fluxo e loop ficam por conta  da API onde temos que nos preocupar somente com a regra do negócio.


Cenário 1

Seu cliente solicita que você some todos os números pares de uma lista e mostre o resultado.
Sem o uso de Stream:

Nesta solução percorremos todos os itens da lista usando for , verificamos se o número é par e somamos os números que forem pares na variável resultado e mostramos em tela o resultado.

Agora usando Stream API:

Nesta solução com apenas 2 linhas pegamos a lista, convertemos para Stream, usamos o método filter para filtrar elementos de uma stream com uma condição (predicado), efetuamos a transformação na lista de dados, efetuamos a soma e mostramos em tela.

Cenário 2

Seu cliente solicita todos os nomes que começam com a letra “M” de uma lista de convidados.

Sem o uso de Stream:

api

Nesta solução percorremos a lista, criamos uma variável para armazenar a primeira letra dos nomes e verificamos se essa primeira letra do nome inicia com M, se iniciar com M mostramos em tela.

Agora usando Stream API:

Nesta solução pegamos a lista lista Convidados convertemos para Stream, usamos o método filter para filtrar elementos de uma stream com uma condição (predicado), convertemos para um tipo list compatível e mostramos em tela.


Conclusão

Com Stream Api você diminui linhas de código, melhora a legibilidade, facilita a manutenção e ganha produtividade no desenvolvimento. Espero que as dicas tenham sido úteis pra você. 

Ficou com alguma dúvida no assunto? É só deixar aqui embaixo nos comentários.


Vagas em tecnologia

Aqui na Zup, nós acreditamos em profissionais fora da curva e que querem crescer exponencialmente. Você gosta de desafios? Veja nossas vagas em tecnologia.

O que você achou deste conteúdo?
Quer receber nossos conteúdos?
Seu cadastro foi efetuado com sucesso! Enviaremos as novidades no seu email.
Oops! Something went wrong while submitting the form.