Java 8中的收集器partitioningBy()方法

partioningBy()方法返回一个收集器,该收集器根据谓词对输入元素进行分区,并将它们组织成Map <Boolean,List <T >>。

语法如下。

static <T> Collector<T,?,Map<Boolean,List<T>>> partitioningBy(Predicate<? super T> predicate)

在这里,参数

  • T-输入元素的类型

  • 谓词-用于组织输入元素

要使用Java中的Collectors类,请导入以下包。

import java.util.stream.Collectors;

以下是partitioningBy()在Java中实现方法的示例。

示例

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