查询:如何从Grails
中的地图中提取最小值到目前为止,我发现以下代码可以从groovy中的地图中获取最小值
["Java":1, "Groovy":4, "JavaScript":2].min{it.value}
但它没有在Grails工作
我尝试过以下代码
def map = ["Java":1, "Groovy":4, "JavaScript":2]
println map.min{it.value}
assert map.min{it.value}==1
提前致谢
答案 0 :(得分:3)
如果您想要地图中的最小值,您可以执行以下操作:
def map = ["Java":1, "Groovy":4, "JavaScript":2]
println map.values().min()
assert map.values().min() == 1
修改强>
此外,closure accepting version of map.min
自1.7.6以来一直在Groovy中,而Grails(从v1.3.6开始)使用Groovy 1.7.5
答案 1 :(得分:0)
min()
不返回参数闭包返回的最小值,它返回闭包返回最小值的集合的元素。
map.min {it.value}
是有效的通话,但它不是值。它是MapEntry
,具有key
和value
属性。所以map.min{it.value}.value
会这样做。