Groovy -计算某个键在映射列表或映射中的重复出现次数

  • 本文关键字:映射 列表 计算 Groovy groovy
  • 更新时间 :
  • 英文 :


我刚开始编程,如果这是一个愚蠢的问题,我很抱歉。:)

我正试图计算某个键在映射列表或映射中被发现的次数。(可以是任何一个)在我的示例中,我需要知道键key1在变量中出现的次数(请记住,它可以是映射列表或映射)

def test01 = [[key1:'value1', key2:'value1', key3:'value1'], [key1:'value1', key2:'value1', key3:'value1'], [key5:'value1', key2:'value1', key4:'value1']]
def test02 = [key1:'value1', key2:'value1', key3:'value1']

def test03 = test01.findAll{it -> it.key1}.size()
println (test03)

我的代码工作,如果我的变量将是一个映射列表(test01)。但如果我在地图上试一下,它就会刹车。我不确定如何正确地迭代,所以这是ok的地图列表或地图。

谢谢你的帮助!

你可以试试:

countKey = { e -> (e instanceof Map ? [e] : e).count { it.key1 } }
countKey(test01)
countKey(test02)