Skip to content

在Java Stream API中,有几种聚合方法可用于将流中的元素聚合成一个单一的结果。以下是一些常用的聚合方法:

  • count():计算流中的元素数量。
long count = stream.count();
  • min()和max():找到流中的最小值和最大值。
Optional<Integer> min = stream.min(Comparator.naturalOrder());
Optional<Integer> max = stream.max(Comparator.naturalOrder());
  • sum():计算流中的元素的总和。
int sum = stream.mapToInt(Integer::intValue).sum();
  • average():计算流中元素的平均值。
OptionalDouble average = stream.mapToInt(Integer::intValue).average();
  • reduce():将流中的元素按照指定的操作进行聚合。
Optional<Integer> result = stream.reduce((a, b) -> a + b);
  • collect():将流中的元素收集到一个集合中。
List<Integer> list = stream.collect(Collectors.toList());
Set<Integer> set = stream.collect(Collectors.toSet());

这些聚合方法可以根据需求选择使用。请注意,某些聚合方法返回的结果是Optional类型,因为流可能为空。在使用这些方法的结果之前,建议使用Optional.isPresent()方法进行检查。

此外,您还可以使用自定义的聚合操作,通过reduce()方法传递一个BinaryOperator函数来实现。这样,您可以根据自己的需求对流中的元素进行自定义的聚合操作。