2014-08-29 20 views
7

Jak zaimplementować dla każdego w Groovy. Mam przykładowy kod w Javie, ale nie wiem jak zaimplementować ten kod w Groovydla każdej pętli w groovy

Java:

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

czytam http://groovy.codehaus.org/Looping i próbował tłumaczyć mojego kodu Java Groovy, ale to nie działa.

for (objKey in tmpHM.keySet()) { 
    HashMap objHM = (HashMap) list.get(objKey); 
} 
+1

General Uwaga: dostaniesz dużo lepsze odpowiedzi, jeśli powiesz konkretnie * co * nie działa (nie „to nie działa”). Właśnie próbowałem i pętla działa. – mabi

Odpowiedz

18

tak proste, jak:

tmpHM.each{ key, value -> 
    doSomethingWithKeyAndValue() 
} 
+1

Używanie zamknięcia nie zawsze jest najlepszym rozwiązaniem. metoda .each() nie pozwala na przerwanie; –

+0

To jest dokładnie to, w jaki sposób budowane są metody "each" i wszystkie inne groovy: po prostu ślepo iterują poprzez jeden z nich. Jeśli potrzebujesz kolejnej logiki iteracji, musisz trzymać się tradycyjnych pętli – injecteer

11

Ten pracował dla mnie:

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

Źródło: Wikia.

1

możesz skorzystać z poniższego kodu porywające dla map z pętla foreach

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 
} 
Powiązane problemy