Middle
Qual é o objetivo do uso de streams na nova versão do Java?
sobes.tech IA
Resposta da IA
Simplificação do trabalho com coleções de dados.
Objetivos principais:
- Funcionalidade: Permitem usar expressões lambda e outras interfaces funcionais para o processamento declarativo de dados.
- Paralelismo: Facilitam a paralelização de operações sobre coleções sem gestão explícita de threads.
- Inmutabilidade: Os streams não modificam a coleção original. As operações nos streams criam novos streams ou resultados finais.
- Desempenho: A avaliação preguiçosa (lazy evaluation) permite realizar operações apenas quando necessário.
- Legibilidade: O código torna-se mais conciso e expressivo em comparação com os ciclos tradicionais.
Exemplo de uso:
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
public class StreamExample {
public static void main(String[] args) {
List<String> fruits = Arrays.asList("apple", "banana", "orange", "grape");
// Filtragem e transformação usando streams
List<String> filteredFruits = fruits.stream()
.filter(s -> s.startsWith("a")) // Apenas os que começam com "a"
.map(String::toUpperCase) // Converter para maiúsculas
.collect(Collectors.toList()); // Recolher numa nova lista
System.out.println(filteredFruits); // Saída: [APPLE]
}
}
Resumindo, os streams tornam o código mais moderno, eficiente e legível ao trabalhar com coleções de dados.