【发布时间】:2011-06-09 13:08:57
【问题描述】:
有没有办法在 Java 的映射中交换两个键?
例如。对于列表有Collections.swap(ArrayList,1,2);
【问题讨论】:
有没有办法在 Java 的映射中交换两个键?
例如。对于列表有Collections.swap(ArrayList,1,2);
【问题讨论】:
你可以使用这一个班轮:
map.put('a', map.put('b', map.get('a')));
【讨论】:
如果您需要处理边界情况,例如其中一个键实际上不在地图中,您可以执行以下操作:
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 回答中的在线。
【讨论】: