2014-02-26 58 views
2

我想弄清楚什么是类似的数据类型,我应该在java中使用类似于groovy?groovy与java类似的数据类型?

我的我是新的Groovy代码如下

statistic = [:] 
entries.each { 
    minute = it.getRequestTime() 

    value = it.getValue() 

    if (statistic[minute] == null) { 
     statistic[minute] = [:] 
    } 

    if (statistic[minute][value] == null) { 
     statistic[minute][value] = ['count': 0L, 'timesum': 0L, 'min': Long.MAX_VALUE, 'max': Long.MIN_VALUE] 
    } 
} 

到Groovy和其很难理解的数据类型,他们使用。我可以理解他们在常规中使用了Hashmap(statistic = [:])。但后者对我来说真的很迷惑。任何人都可以请帮我理解这段代码吗?

回答

2

这些是嵌套的地图,地图中的地图。

if (statistic[minute] == null) 

这意味着,如果有对minute关键的条目,把一个新的空地图那里。

if (statistic[minute][value] == null) 

这意味着,如果有在statistic[minute]
的关键value没有条目,然后把另一个地图那里。

+0

是否像这样:Map >,Long>'最后一个赋值统计量[minute] [value] = ['count':0L,'timesum':0L ,'min':Long.MAX_VALUE,'max':Long.MIN_VALUE]? – Acjb

+0

是的,他们将统计图分为[分钟] [值]。 –

+2

假设minute和value是字符串,它更像'Map >>' –