在这个例子中
Streamstream = Stream.of(new MyClass(5),new MyClass(15),new MyClass(8),new MyClass(12)); Map > map = stream.collect(Collectors.partitioningBy(a->a.getNum()<10));
在stream.collect
检索地图布尔并List
因此它不工作.我应该怎么做才能回到地图Boolean
和List
呢?
通常,当您想要在一个groupingBy
或一个partitioningBy
操作中使用不同的聚合时,您可以通过指定另一个聚合来执行此操作,Collector
如:
Map> map = stream.collect(Collectors.partitioningBy(a -> a.getNum()<10, Collectors.mapping(MyClass::getNum, Collectors.toList())));
但是,当分区函数和聚合函数都在同一个属性上工作时,map
前面的元素值更容易:
Map> map2 = stream.map(MyClass::getNum).collect(Collectors.partitioningBy(num -> num<10));