How should I iterate through a Nested Map with such declaration?
- Map<String, Multiset<String>>
Please suggest if there are other hashmap/list that are more effective way of doing this hash population task?
import com.google.common.collect.Multiset;
import com.google.common.collect.TreeMultiset;
String[] foobarness = {"foo" , "bar", "ness", "foo", 
    "bar", "foo", "ness", "bar", "foo", "ness", "foo", 
    "bar", "foo", "ness", "bar", "ness", "foo", "bar", 
    "foo", "ness"};
String[] types = {"type::1", "type::2", "type::3", 
    "type::4",};
Map<String, Multiset<String>> typeTextCount = 
new HashMap<String, Multiset<String>>();
Multiset<String> textAndCount 
    = TreeMultiset.create();
for (int i=0; i<types.length; i++) {
    // I know it's kinda weird but in my task, 
    //  i want to keep adding only 1 to the count for each entry.
    // Please suggest if there is a better hashmap/list for such task.
    if ((types[i]== "type::1") or (types[i]== "type::3")) {
        for (String text : foobarness) {
            // I don't worry too much about how i 
            //  populate the Map, it is iterating through 
            //  the Map that I have problem with.           
            textAndCount.put(text, 1); 
        }
    }
    if ((types[i]== "type::2") or (types[i]== "type::4")) {
        for (String text : foobarness) 
            textAndCount.put(text, 1);
    }
}
So now the hashmap is populated, how do i iterate through that complex nested map? I've tried the code below but I only got the 1st getValue() from my Multiset:
Iterator<Entry<String, Multiset<String>>> itTTC = 
    typeTextCount.entrySet().iterator();
while (itTTC.hasNext()) {
    Map.Entry textCt = (Map.Entry)itTTC.next();
    System.out.println(textCt.getKey() + " :\t" + textCt.getValue());
    itTTC.remove();
}
 
     
    