简体   繁体   English

[Grails / Groovy] Map条目的最小值

[英][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 ,具有keyvalue属性。 So map.min{it.value}.value would do. 所以map.min{it.value}.value会这样做。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM