Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy映射:获取键所持有的值的计数_Groovy - Fatal编程技术网

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']]