一种Groovy方法将元素添加到地图中的列表?

时间:2011-08-08 07:32:14

标签: groovy

我有一个Int-> List [Int]的Map,并给出一个值,我想检查它是否已经有一个条目。如果是这样,请添加到列表中。否则,创建一个新列表并添加到其中。有没有更短的方法来做到这一点?

  

def map = [:]

    (1..100).each { i ->
        if (map[i % 10] == null) {
            map[i % 10] = []
        }
        map[i % 10].add(i)
    }

1 个答案:

答案 0 :(得分:22)

使用带默认值的地图:

def map = [:].withDefault {[]}

(1..100).each {map[it % 10].add(it)}

每次尝试访问不存在的密钥时都会创建默认值。