Java 流 API 过滤器
javaobject oriented programmingprogramming更新于 2024/11/8 9:48:17
流过滤器函数返回由此流中满足指定谓词的项目组成的流。这是一个中级操作。这些操作始终是惰性的,即运行过滤器函数或其他中间操作实际上不会过滤任何内容;相反,它会生成一个新的流,当遍历时,该流包含满足所提供谓词的初始流的项目。
语法
Stream<T> filter(Predicate<? super T> predicate)
当 T 是 predicate 的输入类型并且 stream 是接口时。
返回类型
一个新的流。
实现
消除可能被分为 0 到 10 的数字范围的项目。
删除以特定索引开头的大写字母的条目。
删除以特定字母结尾的组件。
示例 1:filter() 方法,具有过滤可被 5 整除的元素的操作
// Java 程序获取由以下内容组成的流元素
import java.util.*;
public class Example {
public static void main(String[] args){
List<Integer> list = Arrays.asList(3, 4, 6, 12, 20);
list.stream()
.filter(num -> num % 5 == 0)
.forEach(System.out::println);
}
}
输出
20
示例 2:filter() 方法,操作为过滤索引 1 处带有大写字母的元素
// Java 程序获取由元素组成的流
import java.util.stream.Stream;
public class Example {
public static void main(String[] args) {
Stream<String> stream = Stream.of("class", "FOR", "QUIZ", "waytoclass");
stream.filter(str -> Character.isUpperCase(str.charAt(1)))
.forEach(System.out::println);
}
}
输出
FOR QUIZ
示例 3:filter() 方法,用于过滤以自定义字母结尾的元素
// Java 程序获取由元素组成的流
import java.util.stream.Stream;
public class Example {
public static void main(String[] args){
Stream<String> stream = Stream.of("Class", "FOR", "Quiz", "WaytoClass");
stream.filter(str -> str.endsWith("s"))
.forEach(System.out::println);
}
}
输出
Class WaytoClass
结论
改进 Java 代码功能的一种方法是利用 filter() 方法。与强制或有条不紊的方法相反。但是,在使用 filter() 函数时需要注意一些事项。
例如,链接多个过滤方法可能会导致代码运行缓慢。这样就可以创建一个包含满足谓词条件的元素的新流作为中间操作。因此,减少您进行的 filter() 调用数量的关键是将谓词合并为一个句子。
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

