使用groovy对每个循环中的对象进行计数 [英] count objects in an each loop with groovy
本文介绍了使用groovy对每个循环中的对象进行计数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
def numbers = [[duration:1, calldate:6, disposition:1], [duration:1, calldate:6, disposition:1], [duration:2, calldate:7, disposition:2], [duration:2, calldate:7, disposition:2], [duration:1, calldate:7, disposition:1], [duration:1, calldate:7, disposition:1], [duration:2, calldate:7, disposition:2], [duration:2, calldate:7, disposition:2], [duration:2, calldate:7, disposition:2], [duration:1, calldate:7, disposition:1], [duration:2, calldate:7, disposition:2], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:2, calldate:8, disposition:2], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1], [duration:1, calldate:8, disposition:1]]
numbers.eachWithIndex { item, i ->
println "${numbers[i]} calldate: ${item.calldate} Duration: ${item.duration} Disposition: ${item.disposition}"
};
我需要从持续时间和处置中统计对象,但通话日期必须是唯一的。
I need to count objects from duration and disposition but the call date has to be unique
推荐答案
numbers.groupBy {
it.calldate
}.sort().each{
def duration = (it.value*.duration).sum()
def disposition = (it.value*.disposition).sum()
println "$it.key $duration $disposition"
}
输出:
6 2 2
7 15 15
8 94 94
这篇关于使用groovy对每个循环中的对象进行计数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文