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

如何基于查找表向PGRatingConfig的Rating列表中补充缺失条目

首先修正你给出的查找表代码错误:HashMap没有add方法,需要使用put方法添加键值对。

实现逻辑

对每个查询得到的PGRatingConfig实例,先提取已有的产品组ID集合做存在性校验,再遍历查找表补全缺失的产品组配置即可:

  1. 给PGRatingConfig、Rating类补充私有字段对应的getter、setter方法
  2. 遍历所有PGRatingConfig实例,提取其Rating列表中已有的产品组ID存入Set
  3. 遍历产品组查找表的所有值(产品组名称),缺失的条目新建Rating对象设置默认值后加入列表

代码示例

// 修正后的产品组查找表
Map<String, String> pgLookupMap = new HashMap<>();
pgLookupMap.put("1", "Soap");
pgLookupMap.put("2", "Cleaner");

// 假设pgRatingConfigList是从数据库查询得到的结果
List<PGRatingConfig> pgRatingConfigList = queryFromDB();

for (PGRatingConfig config : pgRatingConfigList) {
    List<Rating> ratingList = config.getRating();
    // 兼容不可变列表场景,统一转成可变ArrayList
    List<Rating> mutableRatingList = new ArrayList<>(ratingList);
    // 提取已有产品组ID
    Set<String> existIds = mutableRatingList.stream()
        .map(Rating::getId)
        .collect(Collectors.toSet());
    
    // 补全缺失条目
    for (String pgName : pgLookupMap.values()) {
        if (!existIds.contains(pgName)) {
            Rating rating = new Rating();
            rating.setId(pgName);
            rating.setValue("4");
            mutableRatingList.add(rating);
        }
    }
    config.setRating(mutableRatingList);
}

注意事项

  • 如果需要保持产品组的排列顺序和查找表插入顺序一致,把查找表实现类换成LinkedHashMap即可
  • 默认值如果需要调整,直接修改setValue的入参即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:51:01