Java 9中Collectors.filtering()方法的重要性?
收集器 类是Stream API的重要组成部分。在Java9中,新方法:filter()添加到了Collectors 类。Collectors.filtering() 方法可用于在一个流中过滤元件。它类似于流上的filter()方法。过滤器()之前,他们已经进行分组而进行处理的方法的值滤波()方法可很好地与使用Collectors.groupingBy() 方法来分组滤波步骤之前的值进行。
语法
public static <T, A, R> Collector<T, ?, R> filtering(Predicate<? super T> predicate, Collector<? super T, A, R> downstream)
示例
import java.util.stream.*;
import java.util.*;
public class FilteringMethodTest {
public static void main(String args[]) {
List<String> list = List.of("x", "yy", "zz", "www");
Map<Integer, List<String>> result = list.stream()
.collect(Collectors.groupingBy(String::length,
Collectors.filtering(s -> !s.contains("z"),
Collectors.toList())));
System.out.println(result);
}
}输出结果
{1=[x], 2=[yy], 3=[www]}