Collectors counting() method is used to count the number of elements passed in the stream as the parameter. It returns a Collector accepting elements of type T that counts the number of input elements. If no elements are present, the result is 0. It is a terminal operation i.e, it may traverse the stream to produce a result or a side-effect. It returns the total count of elements in the stream which reach the collect() method after undergoing various pipelined stream operations such as filtering, reduction etc.
Syntax:
Java
Java
public static <T> Collector<T, ?, Long> counting()where the mentioned terms are as follows:
- Interface Collector<T, A, R>: A mutable reduction operation that accumulates input elements into a mutable result container, optionally transforming the accumulated result into a final representation after all input elements have been processed. Reduction operations can be performed either sequentially or in parallel.
- T: The type of input elements to the reduction operation.
- A: The mutable accumulation type of the reduction operation.
- R: The result type of the reduction operation.
- Long: The Long class wraps a value of the primitive type long in an object. An object of type Long contains a single field whose type is long. In addition, this class provides several methods for converting a long to a String and a String to a long, as well as other constants and methods useful when dealing with a long.
- T: The type of the input elements.
// Java code to show the implementation of
// Collectors counting() method
import java.util.stream.Collectors;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args)
{
// creating a stream of strings
Stream<String> s = Stream.of("1", "2", "3", "4");
// using Collectors counting() method to
// count the number of input elements
long ans = s.collect(Collectors.counting());
// displaying the required count
System.out.println(ans);
}
}
Output:
Program 2: When no element is passed as input element.
4
// Java code to show the implementation of
// Collectors counting() method
import java.util.stream.Collectors;
import java.util.stream.Stream;
class GFG {
// Driver code
public static void main(String[] args)
{
// creating a stream of strings
Stream<String> s = Stream.of();
// using Collectors counting() method to
// count the number of input elements
long ans = s.collect(Collectors.counting());
// displaying the required count
System.out.println(ans);
}
}
Output:
0