KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
How can we do that with Guava? Notice the presence of List<K> in the return type since many keys can map to the same value in any normal map. public static <K, V> Map<V, List<K>> inverse(Map<K, V> map){ Map<V, List<K>> result = new LinkedHashMap<V, List<K>>(); for (Map.Entry<K, V> entry : map.entrySet()) { if(!result.containsKey(entry.getValue())){ result.put(entry.getValue(), new ArrayList<K>()); } result.get(entry.getValue()).add(entry.getKey()); } return result; } BiMap seems to insist on the unicity of the values, but I don't have this luxury.
Tags (comma-separated)
Save Edits
Cancel