Ich möchte Werte in der Karte in Groovy aktualisieren bestimmte Kriterien erfüllen. Hier ist mein Code:Update Karte mit findAll und jeder in groovy
def m = [:]
m['a'] = 1
m['b'] = 2
m['d'] = 3
m.findAll { it.value > 1}.each {
it.value = 4
}
println m
Aber das Ergebnis ist folgende:
[a:1, b:2, d:3]
Gibt es eine Möglichkeit, es zu tun beide findAll und jeder mit? Oder ich
m.each {if (it.value>1) it.value=4}
Yep, das ist zu richtig, jedoch gibt es größere Komplexität: O (n^2) – kazik1616
Eigentlich ist es in diesem Fall nur O (2n). Das 'findAll' wird n Schritte machen und im schlimmsten Fall wird das' each' auch n Schritte dauern. –
Das Ersetzen von 'it.value' funktioniert. Ich poste meine Antwort. –