Java 8 |带有示例的收集器counting()
收集器counting()方法用于统计作为参数传入流中的元素个数。它返回一个接受类型为 T 的元素的收集器,该元素对输入元素的数量进行计数。如果不存在任何元素,则结果为 0。这是一个终端操作,即它可能会遍历流以产生结果或副作用。它返回经过各种流水线流操作(如过滤、归约等)后到达 collect() 方法的流中元素的总数。
句法:
public static Collector counting()
其中提到的条款如下:
- Interface Collector< T, A, R > :一种可变归约操作,将输入元素累积到可变结果容器中,在处理完所有输入元素后,可选择将累积结果转换为最终表示。归约操作可以顺序或并行执行。
- T:归约操作的输入元素的类型。
- A:归约操作的可变累积类型。
- R:归约操作的结果类型。
- Long: Long 类将原始类型 long 的值包装在一个对象中。 Long 类型的对象包含一个 long 类型的字段。此外,该类提供了几种将 long 转换为 String 和 String 转换为 long 的方法,以及在处理 long 时有用的其他常量和方法。
- T:输入元素的类型。
参数:此方法不带任何参数。
返回值:对输入元素进行计数的收集器。计数作为 Long 对象返回。
以下是说明counting()方法的示例:
方案一:
// 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 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);
}
}
输出:
4
程序 2:当没有元素作为输入元素传递时。
// 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 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);
}
}
输出:
0