Tôi muốn cập nhật các giá trị trong bản đồ trong Groovy làm đầy các tiêu chí nhất định. Đây là mã của tôi:Cập nhật bản đồ bằng cách sử dụng findAll và mỗi bản đồ trong groovy
def m = [:]
m['a'] = 1
m['b'] = 2
m['d'] = 3
m.findAll { it.value > 1}.each {
it.value = 4
}
println m
Nhưng kết quả là sau đây:
[a:1, b:2, d:3]
Có cách nào để làm điều đó bằng cả FindAll và mỗi? Hoặc tôi phải sử dụng
m.each {if (it.value>1) it.value=4}
Yep, đó là chính xác quá, tuy nhiên có lớn hơn phức tạp: O (n^2) – kazik1616
Trên thực tế trong trường hợp này nó là chỉ O (2n). 'FindAll' sẽ có n bước và tồi tệ nhất,' each' sẽ thực hiện n bước. –
Thay thế 'it.value' hoạt động. Tôi đăng câu trả lời của mình. –