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

Java合并HashMap时如何让后合并的Map内容显示在结果底部?

问题根因

你当前使用的HashMap本身不维护元素的插入顺序,元素的存储位置由Key的哈希值决定,遍历输出的顺序和插入先后没有关联,因此会出现后合并的内容显示在结果顶部的问题。

解决方案

使用LinkedHashMap替换HashMap即可,LinkedHashMap默认会按照元素的插入顺序存储,后续插入的元素会自然排列在遍历顺序的末尾,符合你的需求。
如果存在重复Key的场景,你当前的merge逻辑是新值覆盖旧值,若希望重复Key的位置也更新到列表末尾,可以调整合并逻辑,先移除旧Key再插入新值。

修改后的代码示例:

// 替换HashMap为LinkedHashMap
Map<Integer, String> dataToSage = new LinkedHashMap<Integer, String>();
for(InterventionDTO i : list) {
    Map<Integer, String> data = interfaceSageService.getDataToSendToSAGEFromIntervPlanMP(i.getIdintervention());
    data.forEach((key, value) -> {
        // 如果需要重复key也移到末尾,保留这行,不需要可删除
        dataToSage.remove(key);
        dataToSage.merge(key, value, (oldValue, newValue) -> {
            return newValue;
        });
    });
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 02:54:09