Las operaciones de stream en Java SE se dividen en operaciones intermedias y operaciones finales. Las operaciones intermedias son aquellas que transforman un Stream en otro Stream, como map(), filter(), y flatMap(). Las operaciones finales son aquellas que producen un resultado o un efecto secundario, como reduce(), collect(), forEach() y count(). Este documento se centrará en explicar detalladamente el concepto y uso de la operación final count()
en el contexto de la programación funcional con Streams en Java SE.
La Operación Final count()
La operación final count()
es una operación que devuelve el número de elementos presentes en el Stream. Es una operación muy útil cuando se desea determinar el tamaño de un Stream. La operación count()
es una operación de reducción, lo que significa que toma un Stream y lo reduce a un valor único.
Aquí hay un ejemplo básico del uso de count()
:
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Stream<String> nombres = Stream.of("Ana", "Luis", "Pedro", "María", "Juan");
long cuenta = nombres.count();
System.out.println("Número de nombres: " + cuenta);
}
}
En este ejemplo, se crea un Stream de nombres y luego se utiliza la operación count()
para determinar cuántos nombres hay en el Stream. El resultado se imprime en la consola.
Usos Comunes de count()
El método count()
es útil en una variedad de situaciones. Por ejemplo, se puede usar para contar el número de elementos que cumplen con cierto criterio. En el siguiente ejemplo, se utiliza count()
en combinación con filter()
para contar el número de nombres que tienen más de cuatro letras.
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) {
Stream<String> nombres = Stream.of("Ana", "Luis", "Pedro", "María", "Juan");
long cuenta = nombres.filter(nombre -> nombre.length() > 4).count();
System.out.println("Número de nombres con más de cuatro letras: " + cuenta);
}
}
En este ejemplo, la operación intermedia filter()
crea un nuevo Stream que sólo incluye los nombres con más de cuatro letras. Luego, count()
se aplica a este nuevo Stream para determinar cuántos nombres cumplen con este criterio.
Es importante tener en cuenta que una vez que se ha llamado a una operación final en un Stream, este ya no puede ser utilizado. Intentar llamar a otra operación en el Stream arrojará una excepción.
Stream<String> nombres = Stream.of("Ana", "Luis", "Pedro", "María", "Juan");
long cuenta = nombres.count();
// La siguiente línea lanzará una excepción
long cuenta2 = nombres.count();
Conclusión
La operación final count()
es una herramienta poderosa en la caja de herramientas de Java SE para trabajar con Streams. Permite determinar la cantidad de elementos en un Stream de manera eficiente y se puede combinar con otras operaciones para contar elementos que cumplen con ciertos criterios.
Aunque count()
puede parecer simple en la superficie, es parte de un enfoque más amplio de la programación funcional que puede hacer que su código sea más conciso, legible y potencialmente paralelizable para un mejor rendimiento en colecciones grandes. El entendimiento y uso adecuado de las operaciones finales, incluyendo count()
, son habilidades esenciales para cualquier programador de Java SE que busque aprovechar el poder de la programación funcional.

Alan Sastre
Ingeniero de Software y formador, CEO en CertiDevs
Ingeniero de software especializado en Full Stack y en Inteligencia Artificial. Como CEO de CertiDevs, Java es una de sus áreas de expertise. Con más de 15 años programando, 6K seguidores en LinkedIn y experiencia como formador, Alan se dedica a crear contenido educativo de calidad para desarrolladores de todos los niveles.
Más tutoriales de Java
Explora más contenido relacionado con Java y continúa aprendiendo con nuestros tutoriales gratuitos.
Aprendizajes de esta lección
- Aprender cómo se utiliza la operación
count()
y cuál es su propósito. - Aprender a combinar
count()
con otras operaciones de Stream comofilter()
. - Comprender las implicaciones de llamar a una operación final en un Stream.
- Desarrollar habilidades para utilizar
count()
en diversas situaciones de programación funcional.