当前位置:  开发笔记 > 编程语言 > 正文

从Collectors.partitioningBy返回非类类型

如何解决《从Collectors.partitioningBy返回非类类型》经验,为你挑选了1个好方法。

在这个例子中

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因此它不工作.我应该怎么做才能回到地图BooleanList呢?



1> Holger..:

通常,当您想要在一个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));

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有