Как сделать инверсию карты с гуавой с неуникальными значениями?
Как мы можем сделать это с гуавой? Обратите внимание на наличиеList<K>
в возвращаемом типе, поскольку многие ключи могут отображаться на одно и то же значение в любой карте нормалей.
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
кажется, настаивают на уникальности ценностей, но у меня нет этой роскоши.