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]}

相关文章