我有地图,
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
我有地图,
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
您可以使用以下代码获取所有键的大小列表。
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 中也应该可以正常工作。
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']]