image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Joaquim Neto
Joaquim Neto06/02/2024 20:05
Compartilhe

Explorando Streams em Java

  • #Java

As streams em Java, introduzidas no Java 8, fornecem uma poderosa abstração para processamento de dados em coleções. Este artigo explora as streams, suas operações, conceitos fundamentais e como tirar o máximo proveito dessa funcionalidade.

O Que São Streams?

Em termos simples, uma stream é uma sequência de elementos que suporta várias operações para processamento desses elementos. As streams em Java proporcionam uma maneira mais eficiente e concisa de lidar com coleções de dados.

Criando Streams

Existem várias maneiras de criar streams em Java. Algumas das formas comuns incluem:

// A partir de uma coleção

List<String> lista = Arrays.asList("Java", "é", "poderoso");

Stream<String> streamDaLista = lista.stream();

// A partir de valores individuais

Stream<String> streamDeValores = Stream.of("Java", "é", "poderoso");

// A partir de um array

String[] array = {"Java", "é", "poderoso"};

Stream<String> streamDoArray = Arrays.stream(array);

Operações Intermediárias e Terminais

As operações em streams são divididas em duas categorias: intermediárias e terminais.

Operações Intermediárias

Operações intermediárias são aquelas que transformam ou filtram os elementos da stream, mas não produzem um resultado final imediatamente. Algumas operações intermediárias comuns incluem filter, map e distinct.

List<String> palavras = Arrays.asList("Java", "é", "poderoso");

// Filtrar palavras com mais de 3 letras

Stream<String> palavrasFiltradas = palavras.stream().filter(p -> p.length() > 3);

// Transformar palavras para minúsculas

Stream<String> palavrasMinusculas = palavras.stream().map(String::toLowerCase);

Operações Terminais

Operações terminais são aquelas que produzem um resultado final ou realizam uma ação final na stream. Algumas operações terminais comuns incluem forEach, collect e reduce.

List<String> palavras = Arrays.asList("Java", "é", "poderoso");

// Imprimir cada palavra

palavras.stream().forEach(System.out::println);

// Coletar palavras em uma lista

List<String> listaDePalavras = palavras.stream().collect(Collectors.toList());

Conceitos Importantes

Lazy Evaluation

Streams em Java utilizam o conceito de avaliação preguiçosa (lazy evaluation), o que significa que as operações não são realizadas imediatamente, mas somente quando um resultado final é necessário. Isso contribui para a eficiência e economia de recursos.

Parallel Streams

Uma das vantagens das streams é a capacidade de processamento paralelo. O método parallelStream() permite que as operações sejam executadas em paralelo, explorando o poder de processadores multi-core.

List<String> palavras = Arrays.asList("Java", "é", "poderoso");

// Processamento paralelo para contar o número de letras

long totalLetras = palavras.parallelStream().mapToLong(String::length).sum();

As streams em Java são uma adição valiosa ao kit de ferramentas dos desenvolvedores, proporcionando uma abordagem elegante e funcional para o processamento de dados em coleções. Ao compreender os conceitos de operações intermediárias, terminais e outros recursos, os desenvolvedores podem escrever código mais eficiente e expressivo. Explore as streams em seus projetos Java e aproveite os benefícios da programação funcional.

Compartilhe
Recomendados para você
Deal - Spring Boot e Angular (17+)
Cognizant - Arquitetura com Spring Boot e Cloud
Claro - Java com Spring Boot
Comentários (0)