0

我有地图,

 def map= [name:[Vin], email:[vin@gmail.com], phone:[9988888888], jobTitle:[SE]]

我想得到一个键持有的值的总数

例如,

keyname 可以有很多值,比如[name:[Vin,Hus,Rock] 如何以编程方式进行操作?

def count = map.name.size() //gives wrong answer 
4

2 回答 2

2

您可以使用以下代码获取所有键的大小列表。

def map= [name:['Vin',''], email:['vin@gmail.com'], phone:['9988888888'], jobTitle:['SE']]
map.collect{it.value.size()}

输出:

 [2, 1, 1, 1]

我认为 map.name.size() 在 groovy 中也应该可以正常工作。

于 2013-09-11T06:50:35.027 回答
1
def map= [name :['Vin', 'abc', 'xyz'], 
          email:['vin@gmail.com'], 
          phone:[9988888888], 
          jobTitle:['SE']]

//Spread operator to get size of each value
assert map.values()*.size == [3, 1, 1, 1]

//Implicit spread
assert map.values().size == [3, 1, 1, 1]

//use size() to get the size of the values collection
assert map.values().size() == 4

//Values
assert map.values() as List == [['Vin', 'abc', 'xyz'], 
                                ['vin@gmail.com'], [9988888888], ['SE']]
于 2013-09-11T13:53:20.793 回答