对于groovy中的每个循环

Adr*_*ata 35 java foreach groovy

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

Java的:

for (Object objKey : tmpHM.keySet()) {
   HashMap objHM = (HashMap) list.get(objKey);
}
Run Code Online (Sandbox Code Playgroud)

我阅读了http://groovy.codehaus.org/Looping并尝试将我的Java代码翻译成Groovy,但它无法正常工作.

for (objKey in tmpHM.keySet()) {
   HashMap objHM = (HashMap) list.get(objKey);
}
Run Code Online (Sandbox Code Playgroud)

inj*_*eer 47

很简单:

tmpHM.each{ key, value -> 
  doSomethingWithKeyAndValue()
}
Run Code Online (Sandbox Code Playgroud)

  • 使用闭包并不总是最好的解决方案。.each() 方法不允许中断; (5认同)
  • @injecteer 你的观点让我困惑。我坚持我的观点:如果您希望有条件地停止迭代集合(又名“break”),则可以使用“find”方法。 (2认同)

Hum*_*ise 37

这个对我有用:

def list = [1,2,3,4]
for(item in list){
    println item
}
Run Code Online (Sandbox Code Playgroud)

资料来源:Wikia.


Gau*_*ana 6

您可以将以下常规代码用于带有 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
}
Run Code Online (Sandbox Code Playgroud)