有没有办法在Java中交换地图中的两个键?
离。列表中有Collections.swap(ArrayList,1,2);
答案 0 :(得分:6)
你可以使用这个衬垫:
map.put('a', map.put('b', map.get('a')));
答案 1 :(得分:1)
如果您需要处理边界情况,例如其中一个键实际上不在地图中,您可以执行以下操作:
public static <K,V> void swap(Map<K, V> map, K k1, K k2) {
if (map.containsKey(k1)){
if (map.containsKey(k2)){
map.put(k1, map.put(k2, map.get(k1)));
} else {
map.put(k2, map.remove(k1));
}
} else if (map.containsKey(k2)){
map.put(k1, map.remove(k2));
}
}
否则,请在Abdullah Jibaly的回答中使用内线。