Подсчитать количество элементов на карте>?своими ключами - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть 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 голосов
/ 19 февраля 2019

В 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}")
        }
0 голосов
/ 19 февраля 2019

Вы можете перебрать Map и получить Entry для каждого ключа.

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() для перебора внутренней карты, если вам нужны дополнительные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...