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

Java中如何将java.util.ArrayList类型的SQL查询结果转为字典

Java 扁平化ArrayList转键值对Map方案

Java 中对应 Python 字典的结构为java.util.Map接口,无需保留键顺序可使用HashMap实现类,需要保留原列表插入顺序可使用LinkedHashMap实现类,针对你返回的两两一组扁平化结构的ArrayList,可按以下逻辑实现转换:

基础实现代码

首先导入所需依赖:

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

核心转换逻辑:

// 替换为你从JBPM获取到的查询结果ArrayList变量
ArrayList<Object> jbpmQueryList = 你的查询结果变量;
Map<String, Integer> resultMap = new HashMap<>();

// 步长为2遍历列表,每次取一组键值对
for (int i = 0; i < jbpmQueryList.size(); i += 2) {
    String key = (String) jbpmQueryList.get(i);
    // 根据实际返回值的类型做转换,此处默认值为数字类型
    Integer value = ((Number) jbpmQueryList.get(i + 1)).intValue();
    resultMap.put(key, value);
}

取值方式和Python字典逻辑一致:

Integer mathScore = resultMap.get("math");
Integer physicsScore = resultMap.get("physics");
Integer biologyScore = resultMap.get("biology");

健壮性优化版本

增加前置校验避免运行时异常:

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

public class QueryResultConverter {
    public static Map<String, Integer> convertListToMap(ArrayList<Object> queryList) {
        // 空列表校验
        if (queryList == null || queryList.isEmpty()) {
            throw new IllegalArgumentException("查询结果列表不可为空");
        }
        // 元素数量成对校验
        if (queryList.size() % 2 != 0) {
            throw new IllegalArgumentException("查询结果列表元素数量不为偶数,无法完成键值对转换");
        }
        Map<String, Integer> resultMap = new HashMap<>();
        for (int i = 0; i < queryList.size(); i += 2) {
            String key = (String) queryList.get(i);
            Integer value = ((Number) queryList.get(i + 1)).intValue();
            resultMap.put(key, value);
        }
        return resultMap;
    }
}

注意事项

  • 若返回结果中的值为String格式的数字,可将值转换逻辑修改为Integer.valueOf((String) queryList.get(i+1))
  • 若需要保留原列表中的键值对顺序,只需将new HashMap<>()替换为new LinkedHashMap<>()即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 04:15:00