Java filter()详解
时间: 2023-05-28 13:04:08 浏览: 53
Java中的filter()方法是Stream API中的一个中间操作方法,它用于过滤流中的元素,只保留符合条件的元素。
filter()方法的语法如下:
Stream<T> filter(Predicate<? super T> predicate)
其中,predicate是一个函数式接口,用于判断元素是否符合条件。如果符合条件,则返回true,否则返回false。
使用示例:
假设我们有一个字符串列表,我们想要过滤出长度大于等于5的字符串。
List<String> list = Arrays.asList("apple", "banana", "orange", "pear");
List<String> filteredList = list.stream()
.filter(str -> str.length() >= 5)
.collect(Collectors.toList());
在上面的代码中,我们使用stream()方法将列表转换为流,然后使用filter()方法过滤出长度大于等于5的字符串,最后使用collect()方法将过滤后的元素收集到一个新的列表中。
filter()方法返回一个新的流,因此可以对多个条件进行链式调用。
使用示例:
假设我们有一个整数列表,我们想要过滤出奇数并且大于等于5的整数。
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9);
List<Integer> filteredList = list.stream()
.filter(num -> num % 2 != 0)
.filter(num -> num >= 5)
.collect(Collectors.toList());
在上面的代码中,我们使用stream()方法将列表转换为流,然后使用filter()方法过滤出奇数,接着使用filter()方法过滤出大于等于5的整数,最后使用collect()方法将过滤后的元素收集到一个新的列表中。