Как поменять два ключа на карте - PullRequest
2 голосов
/ 15 января 2011

Есть ли способ заменить два ключа на карте в Java?

ех. для списка есть Collections.swap(ArrayList,1,2);

Ответы [ 2 ]

6 голосов
/ 15 января 2011

Вы можете использовать этот вкладыш:

map.put('a', map.put('b', map.get('a')));
1 голос
/ 15 января 2011

Если вам нужно обработать граничные случаи, например, один из ключей, которых нет на карте, вы можете сделать что-то вроде этого:

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));
    }
}

В противном случае используйте ответ в ответ Абдуллы Джибали.

...