对于 groovy 中的每个循环

问题描述 投票:0回答:4

如何在 Groovy 中实现 foreach? 我有一个 Java 代码示例,但我不知道如何在 Groovy 中实现此代码...

Java:

for (Object objKey : tmpHM.keySet()) {
   HashMap objHM = (HashMap) list.get(objKey);
}

我阅读了 http://groovy.codehaus.org/Looping,并尝试将我的 Java 代码转换为 Groovy,但它不起作用。

for (objKey in tmpHM.keySet()) {
   HashMap objHM = (HashMap) list.get(objKey);
}
java groovy foreach
4个回答
117
投票

很简单:

tmpHM.each{ key, value -> 
  doSomethingWithKeyAndValue key, value
}

88
投票

这个对我有用:

def list = [1,2,3,4]
for(item in list){
    println item
}

来源:Wikia


10
投票

您可以将以下常规代码用于带有 for-each 循环的地图。

def map=[key1:'value1', key2:'value2']

for (item in map) {
  log.info item.value // this will print value1 value2
  log.info item       // this will print key1=value1 key2=value2
}

2
投票

您的代码运行良好。

def list = [["c":"d"], ["e":"f"], ["g":"h"]]
Map tmpHM = [1:"second (e:f)", 0:"first (c:d)", 2:"third (g:h)"]

for (objKey in tmpHM.keySet()) {   
    HashMap objHM = (HashMap) list.get(objKey);
    print("objHM: ${objHM}  , ")
}

打印

objHM: [e:f]  , objHM: [c:d]  , objHM: [g:h]  ,

© www.soinside.com 2019 - 2024. All rights reserved.