Java Stream count() 与 filter() 匹配

位置:首页>文章>详情   分类: Java教程 > 编程技术   阅读(267)   2023-07-10 14:19:57

学习计算 Stream 中由指定过滤器表达式传递的匹配项。统计项目,我们可以使用以下两种方法,都是终端操作,结果是一样的

  • Stream.count()
  • Stream.collect(Collectors.counting())

1. 流计数() API

Stream 接口有一个名为 count()默认方法,返回一个 $$$ 值指示流中匹配项的数量。

long count()

要使用 count() 方法,请在任何 Stream 实例上调用它。

Stream s = ...;

s.count();
//or
s.collect(Collectors.counting());

2. Stream中的匹配计数

示例 1:计算 Stream 中的所有项目

在此示例中,我们正在计算不同类型流中的元素数量,例如 IntStreamLongStream

long count = Stream.of("how","to","do","in","java").count();	//5
 
long count = IntStream.of(1,2,3,4,5,6,7,8,9).count();   //9

示例 2:计算与 Stream filter() 匹配的项目

要计算匹配的项目,我们需要应用过滤器表达式或谓词来过滤以找到匹配的项目,然后我们可以使用 count() API 来计算项目。

在给定的示例中,我们正在计算流中的所有偶数。

long count = LongStream.of(1,2,3,4,5,6,7,8,9)
            .filter(i -> i%2 == 0)
            .count();
            //or
            //.collect(Collectors.counting())

快乐学习!!

地址:https://www.cundage.com/article/stream-count-elements-example.html

相关阅读

Java 8 Stream.map() 将 Stream<X&gtl; 转换为 Stream<Y&gtl;。对于每个 X 类型的对象,都会创建一个新的 Y 类型的对象,并将其放入新的...
Stream skip(n) 方法用于从给定 Stream 中跳过第一个 'n' 元素。 skip() 方法返回一个新的 Stream,它包含原始 Stream 的剩余元素,在指定的 n 元素被...
Stream flatMap() 方法用于将集合流扁平化为对象流。这些对象是从原始 Stream 中的所有集合组合而来的。 flatMap() 操作具有对 Stream 的元素应用一对多转换的效...
学习使用 Stream.concat() 方法用于将两个流合并为一个流,该流由两个合并流的所有元素组成。 1.流concat()方法 static <T&gtl; Stream<T&...
学习计算 Stream 中由指定过滤器表达式传递的匹配项。统计项目,我们可以使用以下两种方法,都是终端操作,结果是一样的。 Stream.count() Stream.collect(Colle...
Java Stream anyMatch(predicate) 是终端短路操作。它用于检查 Stream 是否包含至少一个满足给定 Predicate 的元素。 1. 流 anyMatch() ...
findFirst() 方法返回一个 Optional 描述 给定流的第一个元素 如果 流 是非空的,或者如果流为空,则为空 Optional。 1.流findFirst()方法 Optiona...
findAny() 方法返回一个 Optional 描述 给定流的任何元素 如果 流 是非空的,或者如果流为空,则为空 Optional。 在非并行流中,findAny() 将在大多数情况下返回...
了解如何使用 Stream toArray() API 将 Stream 转换为数组。在本教程中,我们将看到多个示例,用于将 Stream 元素收集到 数组。 1. Stream toArray...
Java Stream allMatch() 是一个短路终端操作,用于检查流中的所有元素是否满足提供的谓词。 1.流allMatch()方法 1.1.句法 boolean allMatch(Pr...