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

HashMap无法存储多值仅保留最后一条记录,代码问题排查求助

问题分析与解决办法

嗨,一眼就揪出问题所在啦——你在循环的每一次迭代里都重新创建了HashMap对象!

看你这段代码:

for (int i=0; i<params.size(); i++) {
    queries = new HashMap<String,Object>(); // 这里每次循环都会生成一个全新的空Map
    queries.put(params.get(i).get(0), params.get(i).get(1));
    // ... 打印代码
}

每次循环走到queries = new HashMap<>()这行时,都会把queries变量指向一个全新的空HashMap,之前循环存进去的键值对直接就被丢弃了,最后自然只剩最后一次循环存入的pageSize=40。

修正方案

把HashMap的初始化代码移到循环外面,让整个循环共用同一个Map实例:

// 先在循环外初始化好HashMap
Map<String, Object> queries = new HashMap<>();
for (int i=0; i<params.size(); i++) {
    queries.put(params.get(i).get(0), params.get(i).get(1));
    System.out.println("Value of column: " + params.get(i).get(0));
    System.out.println("Value of row: " + params.get(i).get(1));
    System.out.println("values of the hashmap is: " + queries);
}

这样修改后,每次循环的put操作都是往同一个HashMap里添加键值对,pageNumber=1和pageSize=40就都能被正常保存下来啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 15:03:16