如何使用具有非唯一值的番石榴进行地图反转?
2022-09-02 11:51:23
我们怎么能用番石榴做到这一点?请注意返回类型中存在 ,因为许多键可以映射到任何法线映射中的相同值。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
似乎坚持价值观的单一性,但我没有这种奢侈。