gpt4 book ai didi

java - 从 Collectors.partitioningBy 返回非类类型

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:54:18 27 4
gpt4 key购买 nike

在这个例子中

Stream<MyClass>stream = Stream.of(new MyClass(5),new MyClass(15),new MyClass(8),new MyClass(12));

Map<Boolean, List<Integer>> map =
stream.collect(Collectors.partitioningBy(a->a.getNum()<10));

stream.collect检索 Boolean 和 List<MyClass> 的映射所以它不起作用。我应该怎么做才能返回Boolean的 map ?和 List<Integer>相反?

最佳答案

通常,当您想要在 groupingBypartitioningBy 操作中进行不同的聚合时,您可以通过指定另一个 Collector 来实现,例如:

Map<Boolean, List<Integer>> map
= stream.collect(Collectors.partitioningBy(a -> a.getNum()<10,
Collectors.mapping(MyClass::getNum, Collectors.toList())));

然而,当分区函数和聚合函数都作用于同一个属性时,预先将元素映射到该属性值会容易得多:

Map<Boolean, List<Integer>> map2
= stream.map(MyClass::getNum).collect(Collectors.partitioningBy(num -> num<10));

关于java - 从 Collectors.partitioningBy 返回非类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34177230/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com