OptaPlanner中的计数与CountDistinct



文档中关于ConstraintCollectors'count()countDistinct()的示例并不十分清楚:

ConstraintCollectors.count(…​)对一个组中的所有元素进行计数
ConstraintCollectors.countDistinct(…​)对组中的任何元素计数一次,而不管它发生了多少次。

我看不出两者有什么区别。当与groupBy()组合时,它们不都返回一个代表A的组的元组的BiConstraintStream<A, Integer>及其相应的计数吗?

这些方法缺少javadocs和一些示例:https://issues.redhat.com/browse/PLANNER-2241

计数:

from([
Person("Ann", "Cole", 20),
Person("Beth", "Cole", 20),
Person("Carl", "Cole", 22),
Person("Dan", "Jones", 20)
]).groupBy(Person::getLastName, count())
returns [{"Cole", 3}, {"Jones", 1}]

countDistinct:

from([
Person("Ann", "Cole", 20),
Person("Beth", "Cole", 20),
Person("Carl", "Cole", 30),
Person("Dan", "Jones", 20)
]).groupBy(Person::getLastName, countDistinct(Person::getAge))
returns [{"Cole", 2}, {"Jones", 1}]

这些例子说明了区别吗?

最新更新