计算Map <string,map <string,=“” int =“” >>中的元素数量?通过其键

时间:2019-02-19 06:42:03

标签: android kotlin hashmap

我有Map<String, Map<String, Int>>

我应该如何分析?我想计算每个键有多少个值。

假设我们有一张类似{jack={a=1, b=2, c=3}, amy={d=1, a=3, c=1, e=5}的地图

我的目标是通过地图的每个键来获取元素数量,例如:[jack=3, amy=4]

2 个答案:

答案 0 :(得分:1)

您可以遍历Map并获取每个键的条目。

for (Map.Entry<String, Map<String, Integer>> entry : map.entrySet()) {
        System.out.println(entry.getKey() + " = " + entry.getValue().size());
    }

相当于Kotlin的

for ((key, value) in map) {
        println(key + " = " + value.size)
    }

如果您只对尺寸感兴趣,那么可以。 如果需要更多数据,可以进一步使用entry.getValue()遍历内部地图。

答案 1 :(得分:0)

在Kotlin中,您只需将列表作为Hashmap初始化即可,然后可以轻松地在hashMap上进行迭代并获取键和元素数:

val hashMap = hashMapOf(
            "jack" to mapOf("a" to 1, "b" to 2, "c" to 3),
            "amy" to mapOf("d" to 1, "a" to 3, "c" to 1, "e" to 5)
        )

        for (e in hashMap) {
            println("Key: ${e.key}, elementsCount: ${e.value.size}, elements: ${e.value}")
        }