Java 8 中的 Collectors 分区方法
java 8object oriented programmingprogramming
partioningBy() 方法返回一个 Collector,它根据 Predicate 对输入元素进行分区,并将它们组织成 Map<Boolean, List<T>>。
语法如下。
static <T> Collector<T,?,Map<Boolean,List<T>>>partitioningBy(Predicate<? super T> predicate)
这里的参数,
T − 输入元素的类型
predicate −用于组织输入元素
要使用 Java 中的 Collectors 类,请导入以下包。
import java.util.stream.Collectors;
以下是在 Java 中实现partitioningBy()方法的示例。
示例
import java.util.Map; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; public class Demo { public static void main(String[] args) { Stream<Integer> stream = Stream.of(25, 50, 75, 100, 125, 150); // 对于流元素 50 为真 Map<Boolean, List<Integer>> m = stream.collect(Collectors.partitioningBy(a -> a == 50)); System.out.println("Stream = "+ m); } }
输出
Stream = {false=[25, 75, 100, 125, 150], true=[50]}