Article image
Caio Oliveira
Caio Oliveira05/05/2023 22:18
Compartilhe

Um breve papo sobre Coleções (Pt. 5) - Stream API

  • #Java

Até o presente momento falamos sobre Set, List, Map, mas o que essas 3 coisas tem em comum?

A resposta é a Stream API!

 

Mas... O que é Stream API?

 

  •   É um Recurso que surge a partir do Java 8
  •   Para a manipulação de conjuntos de objetos (Set, List, Map)
  •   Permite várias operações (Filtragem, Classificação e Redução)

 

Por que usamos essa API?

  • Processamento de Dados: Você pode usar a Stream API do Java para processar grandes conjuntos de dados, filtrando, classificando e manipulando dados de forma eficiente.
  • Cálculos de estatísticas: Inclui métodos para calcular média, soma, mínimo e máximo de um conjunto de dados, o que pode ser útil em análises estatísticas.
  • Paralelismo: Suporta processamento paralelo, o que significa que você pode processar dados em várias threads ao mesmo tempo, acelerando a execução de operações em grandes conjuntos de dados.
  • Programação funcional: É baseada em programação funcional, o que significa que você pode usar lambdas e expressões de funções para trabalhar com os objetos em uma coleção, tornando o código mais conciso e fácil de ler.

A essa altura, você deve estar se perguntando. Por que usar a Stream API se eu posso fazer essas coisas via iteração?

  • Ganho de eficiencia
  • Torna o código mais limpo

Quais seus principais métodos?

  • forEach(): Este método é usado para iterar sobre os elementos de uma coleção e executar uma ação em cada elemento.
  • filter(obj -> condicional): Este método é usado para filtrar os elementos de uma coleção com base em um predicado (condicional). Ele retorna um novo stream que contém apenas os elementos que satisfazem o predicado.
  • map(obj -> func(obj)): Este método é usado para transformar os elementos de uma coleção em outro tipo de elemento. Ele retorna um novo stream que contém os elementos transformados.
  • collect(Collectors.{Tipo_De_Coleção}): Este método é usado para coletar os elementos de um stream em uma coleção ou outro tipo de objeto.
  • distinct(Long num): Este método é usado para remover elementos duplicados de um stream.
  • limit(): Este método é usado para limitar o número de elementos em um stream.
  • anyMatch(obj -> condicional): Este método é usado para verificar se pelo menos um elemento de um stream satisfaz um predicado.
  • noneMatch(obs -> condicional): Este método é usado para verificar se nenhum elemento de um stream satisfaz um predicado.
  • reduce((T inicial,(a,b)-> Operações): Este método é usado para reduzir os elementos de uma coleção a um único valor. Ele aplica uma operação acumuladora aos elementos da coleção e retorna o resultado final.
  • findFirst(): Este método retorna o primeiro elemento de um stream, ou um Optional vazio se o stream estiver vazio.
  • min(Comparator.comparing(obj -> ..)): Este método é usado para encontrar o menor elemento em um stream, com base em um comparador.
  • max(Comparator.comparing(obj -> ..)): Este método é usado para encontrar o maior elemento em um stream, com base em um comparador.

Bem, encerro por aqui essa série de artigos, e espero ter ajudado você em sua jornada de aprendizado.

That's All Folks!

Compartilhe
Comentários (0)