First time here so I hope this makes sense!
I have a Map which contains a String as it’s Key, and a List of Strings as it’s Value. I need to iterate over all vlaues contained within each List within the Map.
So, first I want to get the Keys, which works:
Set<String> keys = theMap.keySet();
This returns me a Set containing all my Keys. Great 🙂
This is where I’ve got stuck – most of the info on the web seems to assume that the values I’d want returned from the Key would be a simple String or Integer, not another Set, or in this case a List. I tried theMap.values() but that didn’t work, and I tried a forloop / for:eachloop, and neither of those did the trick.
Thanks y’all!
That’s really the "normal" way to do it. Or, if you need the key as well…
That said, if you have the option, you might be interested in Guava’s
ListMultimap, which is a lot like aMap<K, List<V>>, but has a lot more features — including aCollection<V> values()that acts exactly like what you’re asking for, "flattening" all the values in the multimap into one collection. (Disclosure: I contribute to Guava.)