Java中递归交换嵌套映射的键和值的算法
如何在Java中编写一个接收嵌套映射并交换键及其值的递归方法。但由于它是一个嵌套映射,一个键或一个值也可以是一个映射,如果是这样的话,它也应该被交换。到目前为止,我只知道:
public class MyRekursion {
public static <K, V> HashMap<V, K> deepReverseMap(Map<K, V> nestedMap) {
HashMap<V, K> rev = new HashMap<V, K>();
for (Map.Entry<K, V> entry : nestedMap.entrySet()){
K key = entry.getKey();
V val = entry.getValue();
if (key instanceof Map){
// ???
// key = (K)deepReverseMap((Map<K, V>)key);
}
if (val instanceof Map){
// ???
// val = (V)deepReverseMap((Map<K, V>)val);
}
rev.put(val, key);
}
return rev;
}
}
将deepReverseMap()的返回值强制转换为K或V可能是错误的。我怎样才能正确地写出这个方法
# 1 楼答案
在Java中没有类型安全的方法,您需要使用未经检查的强制转换: