ForEach Java: o que é, quais são os objetivos e como é a sintaxe
O que é o Método forEach
O método forEach, introduzido nas APIs de Collections e Streams do Java 8, simplifica a interação sobre elementos de uma coleção, executando uma ação específica para cada elemento.
O nome "forEach" descreve precisamente sua funcionalidade: iterar sobre "cada" elemento da coleção. "for" remete às estruturas de controle de fluxo repetitivo, enquanto "each" enfatiza a iteração individual, tornando a nomenclatura intuitiva.
Quais são os objetivos do método forEach Java?
O forEach
elimina a necessidade de loops explícitos como for
ou while
, tornando o código mais conciso e legível. Seus principais usos incluem:
- Manipulação de Streams: Permite realizar operações em paralelo, aproveitando arquiteturas multi-core;
- Manipulação de coleções: Simplifica a iteração e execução de operações em cada elemento;
- Processamento de dados: Facilita a impressão, modificação, filtragem e outras operações em elementos de uma coleção;
- Melhorar a legibilidade do código: Elimina a necessidade de loops tradicionais, tornando o código mais conciso e fácil de entender.
Como é a sintaxe do forEach?
Em relação ao forEach
, temos a seguinte sintaxe:
arrayOuColecao.forEach(elemento -> {
// Ação a ser executada para cada elemento
})
Em outras palavras, "para cada 'elemento' no 'arrayOuColecao', execute a 'ação' definida dentro das chaves".
Comparativamente, o tradicional loop for
seria escrito da seguinte forma:
for (Tipo variavel : arrayOuColecao) {
// Código a ser executado
}
Comparação com o loop for tradicional
Embora o forEach
e o loop for-each
(introduzido no Java 5) sejam usados para iNteração, o forEach
do Java 8 oferece uma funcionalidade adicional.
Enquanto o loop for-each
percorre os elementos de forma sequencial, o forEach
se integra às APIs de Streams, permitindo a paralelização da iteração.
Além disso, o forEach
aceita uma expressão lambda como argumento, definindo a ação a ser executada para cada elemento de forma concisa e expressiva.
Exemplos de uso do forEach
Aqui estão alguns exemplos de uso do forEach:
Iteração e impressão de elementos de uma lista
List<String> listaDaFeira = Arrays.asList("Abobrinha", "Berinjela", "Cenoura", "Ervilha");
listaDaFeira.forEach(legumes -> System.out.println(legumes));
Usando forEach com Map
Map<String, Integer> mapa = new HashMap<>();
mapa.put("Vítor", 1);
mapa.put("Rosana", 2);
mapa.put("Suellen", 3);
mapa.forEach((chave, valor) -> System.out.println(chave + " : " + valor));
Removendo elementos de uma lista
List<String> animaisVet = new ArrayList<>(Arrays.asList("gatinhos", "gato", "peixinhos", "peixe"));
animaisVet.removeIf(animal -> animal.length() > 6);
animaisVet.forEach(System.out::println);
Filtrando e imprimindo elementos de uma lista com base em uma condição
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
numeros.stream()
.filter(numero -> numero % 2 == 0)
.forEach(numero -> System.out.println(numero));
Conclusão
O método forEach
do Java 8 oferece uma maneira concisa e eficiente de iterar sobre coleções e Streams, permitindo a execução de ações personalizadas para cada elemento.
Sua integração com as APIs de Streams abre portas para o processamento paralelo, enquanto sua sintaxe baseada em lambda promove a legibilidade e a expressividade do código.
Aprender a utilizar o forEach
efetivamente capacita as pessoas desenvolvedoras a escreverem código Java mais moderno, eficiente e fácil de manter.