Método iterable forEach() en Java con ejemplos

Ha pasado bastante tiempo desde que se lanzó Java 8. Con el lanzamiento, mejoraron algunas de las API existentes y agregaron algunas características nuevas. Uno de ellos es forEach Method en java.lang.Iterable Interface.

Siempre que necesitemos recorrer una colección, debemos crear un iterador para iterar sobre la colección y luego podemos tener nuestra lógica comercial dentro de un ciclo para cada uno de los elementos dentro de la colección. Es posible que recibamos una ConcurrentModificationException si no se implementa correctamente.

La implementación del método forEach en la interfaz Iterable es:

default void forEach(Consumer action) {
        Objects.requireNonNull(action);
        for (T t : this) {
            action.accept(t);
        }
    }

Parámetro: Este método toma una acción de parámetro de tipo java.util.function.Consumer que representa la acción a realizar para cada elemento.

Devoluciones: el tipo de devolución de forEach es nulo. Por lo tanto, no devuelve nada.

Excepción: lanza NullPointerException si la acción de entrada es nula.

Programa 1: programa para iterar una lista de strings usando el iterador.

// Java program to demonstrate
// forEach() method of Iterable interface
  
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.function.Consumer;
  
public class ForEachExample {
  
    public static void main(String[] args)
    {
        List<String> data = new ArrayList<>();
        data.add("New Delhi");
        data.add("New York");
        data.add("Mumbai");
        data.add("London");
  
        Iterator<String> itr = data.iterator();
        while (itr.hasNext()) {
  
            System.out.println(itr.next());
            // data.remove(itr.next());
            // this line can introduce you to
            // java.util.ConcurrentModificationException.
        }
    }
}
Producción:

New Delhi
New York
Mumbai
London

Programa 2: programa para demostrar el método forEach() en una lista que contiene una lista de ciudades.

// Java program to demonstrate
// forEach() method of Iterable interface
  
import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
  
public class ForEachExample {
  
    public static void main(String[] args)
    {
        List<String> data = new ArrayList<>();
        data.add("New Delhi");
        data.add("New York");
        data.add("Mumbai");
        data.add("London");
  
        data.forEach(new Consumer<String>() {
  
            @Override
            public void accept(String t)
            {
  
                System.out.println(t);
            }
  
        });
    }
}
Producción:

New Delhi
New York
Mumbai
London

En el programa anterior, hemos creado una Lista de strings con 4 elementos y luego hemos iterado sobre la lista usando el método forEach. Como se describió anteriormente para Cada método toma el objeto Consumidor como entrada, hemos creado una implementación de clase interna anónima de la interfaz Consumidor y anula el método de aceptación. En este ejemplo, hemos mantenido la lógica empresarial dentro de la clase interna anónima y no podemos reutilizarla.

Programa 3: En este programa demostraremos la implementación de la interfaz del Consumidor por separado para que podamos reutilizarla. Vamos a crear una clase CityConsumer que implemente la interfaz Consumer y anule su método de aceptación.

// Java program to demonstrate
// forEach() method of Iterable interface
  
import java.util.*;
import java.util.function.Consumer;
  
class CityConsumer implements Consumer<String> {
  
    @Override
    public void accept(String t)
    {
        System.out.println(t);
    }
}
  
// Now we can use the CityConsumer
// with forEach method by just creating
// an object of CityConsumer class as below.
  
public class ForEachExample {
  
    public static void main(String[] args)
    {
        List<String> data = new ArrayList<>();
        data.add("New Delhi");
        data.add("New York");
        data.add("Mumbai");
        data.add("London");
  
        // create an object of CityConsumer
        // and pass it to forEach method
        CityConsumer cityConsumer = new CityConsumer();
        data.forEach(cityConsumer);
    }
}
Producción:

New Delhi
New York
Mumbai
London

Referencia: https://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html

Publicación traducida automáticamente

Artículo escrito por go2ksr y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *