2014-02-26 61 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 >>' –