Java8 stream().filter() 函数
时间: 2023-11-02 20:02:03 浏览: 53
Java8中的stream().filter()函数用于对流中的元素进行过滤操作。它接受一个Predicate函数式接口作为参数,并返回一个包含满足条件的元素的新流。
示例代码如下:
Stream<String> original1 = Stream.of("Java", "C", "Python");
Stream<String> filtered1 = original1.filter(s -> s.startsWith("J"));
filtered1.forEach(System.out::println); // 输出 Java
Stream<String> stream = Stream.of("Java", "C", "Python", "Hadoop", "Spark");
Stream<String> filtered2 = stream.filter(s -> s.contains("o"));
filtered2.forEach(System.out::println); // 输出 Java, Python, Hadoop
在上面的示例中,我们首先创建了一个包含字符串的原始流original1和一个包含多个字符串的流stream。然后,我们使用filter()函数对这两个流进行过滤操作。
在第一个示例中,我们使用startsWith()方法作为Predicate函数式接口的实现,过滤出以字母"J"开头的元素,并将结果存储在filtered1流中。最后,我们使用forEach()函数将结果打印出来,输出结果为"Java"。
在第二个示例中,我们使用contains()方法作为Predicate函数式接口的实现,过滤出包含字母"o"的元素,并将结果存储在filtered2流中。最后,我们使用forEach()函数将结果打印出来,输出结果为"Java, Python, Hadoop"。
总结起来,Java8的stream().filter()函数可以用于对流中的元素进行条件过滤,并返回一个包含满足条件的元素的新流。