[英][Grails/Groovy]minimum value of Map entries
Query: how can i pull minimum value from a map in Grails 查询:如何从Grails中的地图中提取最小值
So far i have found following code to get minimum value from a map in groovy 到目前为止,我已经找到以下代码来从groovy中的地图中获取最小值
["Java":1, "Groovy":4, "JavaScript":2].min{it.value}
but it donot work in Grails 但它没有在Grails工作
i have tried following piece of code 我试过以下一段代码
def map = ["Java":1, "Groovy":4, "JavaScript":2]
println map.min{it.value}
assert map.min{it.value}==1
Thanks in advance 提前致谢
If you want the minimum value from the map, you can do: 如果您想要地图中的最小值,您可以:
def map = ["Java":1, "Groovy":4, "JavaScript":2]
println map.values().min()
assert map.values().min() == 1
edit 编辑
Also, the closure accepting version of map.min
has been in Groovy since 1.7.6, and Grails (as of v1.3.6) uses Groovy 1.7.5 此外,
map.min
接受版本的map.min
自1.7.6以来一直在Groovy中,Grails(截至v1.3.6)使用Groovy 1.7.5
min()
doesn't return a minimum value returned by argument closure, it returns the element of a collection for which the closure returns minimum. min()
不返回参数闭包返回的最小值,它返回闭包返回最小值的集合的元素。
map.min {it.value}
is valid call, but it's not a value. map.min {it.value}
是有效的调用,但它不是值。 It's a MapEntry
, with key
and value
properties. 它是一个
MapEntry
,具有key
和value
属性。 So map.min{it.value}.value
would do. 所以
map.min{it.value}.value
会这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.