5
我想在Groovy中更新地圖中的值,以填充特定條件。這裏是我的代碼:使用findAll和groovy更新地圖
def m = [:]
m['a'] = 1
m['b'] = 2
m['d'] = 3
m.findAll { it.value > 1}.each {
it.value = 4
}
println m
但結果如下:
[a:1, b:2, d:3]
有什麼辦法同時使用的findAll和各辦呢?或者我必須使用
m.each {if (it.value>1) it.value=4}
是的,這是正確的太多,但有更大的複雜性:爲O(n^2) – kazik1616
其實在這種情況下,只是O(2n)。 'findAll'將會執行n個步驟,最壞的情況下,'each'也會執行n個步驟。 –
替換'it.value'的作品。我張貼我的答案。 –