How to browse Hashmap with subkeys?

Asked

Viewed 458 times

0

How to walk a HashMap who owns another HashMap?

for (Map.Entry<Date,HashMap<String, Integer>> entrada : m.entrySet()) {
   // ....
}

1 answer

0

See the code below, exemplifying several ways to make such an iteration:

See that you can access the values via keys, values or by recovering values through keys. Note here the great flexibilities of using Maps.

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class HashMapInHashMap {

    public static void main(String[] args) {

        // mapa representado o problema
        Map<Date, Map<String, Integer>> map = new HashMap<Date, Map<String, Integer>>();

        // iterando-se sobre cada entry
        for (Map.Entry<Date, Map<String, Integer>> entry : map.entrySet()) {

            // recupere a chave de cada entry
            Date key = entry.getKey();

            // recupera o valor da entry atual, que é um mapa
            Map<String, Integer> value = entry.getValue();

            // itere itere sobre todas as chaves do mapa a cima
            for (String keyInner : value.keySet()) {

            }

            // itere sobre todos os valores do mapa a cima
            for (Integer valueInnter : value.values()) {

            }
        }

        // uma maneira mais fácil é iterar sobre cada chave e valor, dos mapa referente ao valor
        for (Map<String, Integer> innerMap : map.values()) {
            // itere sobre cada chave
            for (String key : innerMap.keySet()) {

            }

            // itere sobre cada valor
            for (Integer value : innerMap.values()) {

            }
        }

        // agora recupera o valor baseado na chave corrente
        for (Date key : map.keySet()) {

            // recupere o valor
            Map<String, Integer> value = map.get(key);

            // itere sobre o mapa
            for (String keyInner : value.keySet()) {
                Integer valueInner = value.get(keyInner);
            }
        }
    }
}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.