Desidero aggiornare i valori nella mappa in Groovy riempiendo determinati criteri. Ecco il mio codice:Aggiorna mappa utilizzando findAll e singolarmente in
def m = [:]
m['a'] = 1
m['b'] = 2
m['d'] = 3
m.findAll { it.value > 1}.each {
it.value = 4
}
println m
Ma il risultato è il seguente:
[a:1, b:2, d:3]
Esiste un modo per farlo utilizzando sia findAll e ciascuno? O devo usare
m.each {if (it.value>1) it.value=4}
Sì, è corretto troppo, tuttavia non v'è più grande complessità: O (n^2) – kazik1616
In realtà in questo caso è solo O (2n). Il 'findAll' prenderà n passi e nel peggiore dei casi, il' each' seguirà anche n passi. –
Sostituire 'it.value' funziona. Pubblico la mia risposta –