使用groovy对每个循环中的对象进行计数 [英] count objects in an each loop with groovy

查看:211
本文介绍了使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆