Groovy映射:获取键所持有的值的计数
我有一张地图Groovy映射:获取键所持有的值的计数,groovy,Groovy,我有一张地图 def map= [name:[Vin], email:[vin@gmail.com], phone:[9988888888], jobTitle:[SE]] 我想要得到一个键所持有的值的总数 例如 键name可以有许多值,如[name:[Vin,Hus,Rock]如何编程 def count = map.name.size() //gives wrong answer 您可以使用以下代码获取所有密钥的大小列表 def map= [name:['Vin',''], emai
def map= [name:[Vin], email:[vin@gmail.com], phone:[9988888888], jobTitle:[SE]]
我想要得到一个键所持有的值的总数
例如
键name
可以有许多值,如[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',''], email:['vin@gmail.com'], phone:['9988888888'], jobTitle:['SE']]
map.collect{it.value.size()}
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']]
输出:
[2, 1, 1, 1]
我认为map.name.size()在groovy中也应该可以正常工作。map.name.size()给了我值3名称中总字符数答案中显示的示例显示电子邮件、电话和作业标题为1,1,1,其中只包含一个值,我尝试了这个映射。“keyName”.size()语法对我来说也很好。你能再举一些例子吗?map.name.size()给我值3名称中的总字符数答案中显示的示例显示电子邮件、电话、jobTitle的值为1,1,1,其中只包含一个值,我尝试了这个映射。“keyName”.size()语法对我来说也很好。你能再举一些例子吗?这和?def count=map.name.size()是什么意思?//给出了错误的答案你期望得到什么答案?你得到什么答案?我怀疑你在这里用不好的例子问了一个错误的问题,然后用更好的例子重新问了另一个问题。编辑这个问题可能是一个更好的方法。这和?你说的“def count=map.name.size()//给出错误答案”是什么意思你期望得到什么答案?你得到什么答案?我怀疑你在这里用不好的例子问了错误的问题,然后用更好的例子重新问了另一个问题。编辑问题可能是一个更好的选择。
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']]