Middle
¿Cuál es la diferencia entre Collection y Stream en Java?
sobes.tech AI
Respuesta de la IA
Collection — es una estructura de datos para almacenar elementos, que representa un grupo de objetos, como listas, conjuntos. Es un depósito de datos enfocado en la gestión de elementos.
Stream — es una secuencia de elementos de una fuente (por ejemplo, una colección), que soporta operaciones para procesar y analizar estos elementos en un estilo funcional. No almacena datos, sino que simplemente representa un flujo de datos para realizar operaciones.
Las principales diferencias:
- Propósito:
Collection- almacenamiento de datos,Stream- procesamiento de datos. - Cambio de estado: Las operaciones sobre
Collectiongeneralmente cambian su estado. Las operaciones deStreamno cambian la fuente de datos original. - Reutilización:
Collectionpuede usarse varias veces.Streamsuele ser de un solo uso después de realizar una operación terminal. - Lazy evaluation: Las operaciones sobre
Streamse ejecutan de manera "perezosa" (solo al llamar a una operación terminal), lo que puede ser eficiente para conjuntos de datos grandes. Las operaciones enCollectionse ejecutan inmediatamente. - Paralelismo:
Streamsoporta paralelismo eficiente mediante el métodoparallelStream().
Ejemplo:
// Collection: almacenamiento de datos iterables
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.add("Charlie");
// Stream: procesamiento de datos de la colección
long count = names.stream() // creación de un stream desde la colección
.filter(name -> name.startsWith("A")) // operación intermedia
.count(); // operación terminal