将list集合去重再嵌套的问题

1.数据库有商品表,一个商品对应多个规格,所以在查询商品规格时,会出现前面字段数据相同,后面不同的情况。现在我想将相同的字段归纳在一个list a集合中,a里面再嵌套一个list集合 b,用来添加同一商品的所有的规格数据。

2.数据库查询后的数据如图
图片描述

如图,一个商品id对应三个不同的value(规格)值,现在要将其改为图片下面说明的格式。

3.我使用的是 Spring jdbcTemplate.queryForList(sql)进行查询,返回的是List<Map<String, Object>>集合。

请问,要怎么做才能实现

阅读 4.4k
1 个回答
    Map<Object, Map<String, Object>> map = new LinkedHashMap<>();

    for (Map<String, Object> e : queryResult) {
        if (map.putIfAbsent(e.get("COMMODITY_ID"), e) == null) {
            e.put("VALUE", new ArrayList<>(Arrays.asList(e.get("VALUE"))));
        } else {
            ((List<Object>) map.get(e.get("COMMODITY_ID")).get("VALUE")).add(e.get("VALUE"));
        }
    }

    List<Map<String, Object>> groupedResult = new ArrayList<>(map.values());
    System.out.println(groupedResult);    
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题