如何在地图中交换两个键

时间:2011-01-15 05:13:50

标签: java map key swap

有没有办法在Java中交换地图中的两个键?

离。列表中有Collections.swap(ArrayList,1,2);

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的回答中使用内线。