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

Java中如何实现多个对应同一公共值的键的统一输出?

解决Java中同一值对应多键的合并输出问题

你当前的代码逻辑是把每个键值对单独处理,直接将单个键与值拼接后加入集合,所以每个Entry都会生成一条独立记录,自然无法实现同一值对应多键的合并输出。

修正方案

核心思路是先构建反向映射:以原Map的值作为键,将对应的所有原键收集到列表中,之后再遍历这个反向映射生成目标格式的输出。

完整代码示例

import java.util.*;

public class PatientDemo {
    public static void main(String[] args) {
        Map<String, String> patients = new HashMap<>();
        patients.put("555", "Adam");
        patients.put("666", "Adam");
        patients.put("66r", "PAM");

        // 构建「值 -> 对应键列表」的反向映射
        Map<String, List<String>> valueToKeys = new HashMap<>();
        for (Map.Entry<String, String> entry : patients.entrySet()) {
            // 简化判断:如果当前值不存在映射,自动创建新列表;否则直接添加键
            valueToKeys.computeIfAbsent(entry.getValue(), k -> new ArrayList<>()).add(entry.getKey());
        }

        // 生成并打印目标格式
        for (Map.Entry<String, List<String>> entry : valueToKeys.entrySet()) {
            System.out.println(entry.getKey() + " - " + String.join(",", entry.getValue()));
        }
    }
}

输出结果

Adam - 555,666
PAM - 66r

内容的提问来源于stack exchange,提问作者DAN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 15:27:51