You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何反转Map的键值对?附操作示例

Map键值反转的实现方法

下面针对几种常用编程语言,给出Map键值反转的具体实现,以原Map {1:a, 2:b, 3:c} 反转得到 {a:1, b:2, c:3} 为例:

Java实现

通过遍历原Map的Entry集合,将每个Entry的值作为新Map的键,键作为新Map的值存入:

import java.util.HashMap;
import java.util.Map;

public class ReverseMapDemo {
    public static void main(String[] args) {
        Map<Integer, String> originalMap = new HashMap<>();
        originalMap.put(1, "a");
        originalMap.put(2, "b");
        originalMap.put(3, "c");

        Map<String, Integer> reversedMap = new HashMap<>();
        for (Map.Entry<Integer, String> entry : originalMap.entrySet()) {
            reversedMap.put(entry.getValue(), entry.getKey());
        }

        System.out.println(reversedMap); // 输出 {a=1, b=2, c=3}
    }
}

Python实现

利用字典推导式可以快速完成反转:

original_map = {1: 'a', 2: 'b', 3: 'c'}
reversed_map = {value: key for key, value in original_map.items()}
print(reversed_map)  # 输出 {'a': 1, 'b': 2, 'c': 3}

JavaScript实现

如果是普通对象,可通过Object.entries和Object.fromEntries组合实现:

const originalObj = {1: 'a', 2: 'b', 3: 'c'};
const reversedObj = Object.fromEntries(
    Object.entries(originalObj).map(([key, value]) => [value, key])
);
console.log(reversedObj); // 输出 {a: 1, b: 2, c: 3}

如果是ES6的Map对象,可通过扩展运算符和map方法反转:

const originalMap = new Map([[1, 'a'], [2, 'b'], [3, 'c']]);
const reversedMap = new Map([...originalMap.entries()].map(([k, v]) => [v, k]));
console.log(reversedMap); // 输出 Map(3) {'a' => 1, 'b' => 2, 'c' => 3}

注意:所有实现都需要注意一个问题——如果原Map中存在重复的值,反转后新Map的键会覆盖之前的条目(因为Map/字典的键必须唯一)。比如原Map是{1:'a', 2:'a'},反转后只会保留最后一个对应的键,即{'a':2}。

内容的提问来源于stack exchange,提问作者wasa-bi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 09:16:14