Diferencia entre Collection.stream().forEach() y Collection.forEach() en Java

Collection.forEach() y Collection.stream().forEach() se usan para iterar sobre las colecciones, no hay una diferencia tan importante entre los dos, ya que ambos dan el mismo resultado, aunque hay algunas diferencias en sus componentes internos. laboral.

Collection.stream().forEach() se usa básicamente para la iteración en un grupo de objetos al convertir una colección en la secuencia y luego iterar sobre la secuencia de la colección. Mientras se itera sobre la colección, si se realizan cambios estructurales en las colecciones, arrojará la excepción de modificación simultánea.

Collection.forEach() usa el iterador de la colección (el que se especifique). La mayoría de las colecciones no permiten modificaciones en la estructura mientras se itera sobre esa colección. Si ocurre algún cambio en esa colección, es decir, la adición de un elemento o la eliminación del elemento, arrojarán el error de modificación concurrente. Si collection.forEach() está iterando sobre una colección sincronizada, bloquearán el segmento de la colección y lo retendrán sobre todas las llamadas que se pueden hacer a esa colección.

Diferencia entre Collection.stream().forEach() y Collection.forEach()

  Colección.stream().forEach()

                                    Colección.paraCada()
Collection.stream().forEach() también se usa para iterar la colección, pero primero convierte la colección en la secuencia y luego itera sobre la secuencia de la colección. Collection.forEach() usa el iterador de colecciones.
A diferencia de Collection.forEach(), no se ejecuta en ningún orden específico, es decir, el orden no está definido. Si siempre se ejecuta en el orden de iteración de iterable, si se especifica uno.
Durante la modificación de la estructura en la colección, la excepción se lanzará más tarde. Si realizamos alguna modificación estructural en la colección mediante el uso de collection.forEach(), inmediatamente generará una excepción.
Si la iteración ocurre sobre la colección sincronizada, entonces no bloquea la colección. Si la iteración ocurre sobre la colección sincronizada, bloquea la colección y la retiene en todas las llamadas.

A continuación se muestra un programa Java para mostrar el uso de Collection.stream.forEach():

Java

// Java Program to show the demonstration of
// Collection.stream().forEach()
import java.io.*;
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
        List<Integer> list = new ArrayList<>();
  
        list.add(5);
        list.add(6);
        list.add(3);
        list.add(4);
        // printing each element of list using forEach loop
        list.stream().forEach(System.out::print);
    }
}
Producción

5634

A continuación se muestra un programa Java para mostrar el uso del método Collection.forEach():

Java

// Java Program to show the demonstration of
// Collection.forEach()
import java.io.*;
import java.util.*;
  
class GFG {
    public static void main(String[] args)
    {
        List<Integer> list = new ArrayList<>();
  
        list.add(5);
        list.add(6);
        list.add(3);
        list.add(4);
        // printing each element of list
        list.forEach(System.out::print);
    }
}
Producción

5634

Publicación traducida automáticamente

Artículo escrito por kushwahp1234 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 *