NewDing0521 2011-04-20 14:47
浏览 282
已采纳

关于HashMap存放数据的问题

[code="java"]
//这个map的key是数据库表查出的gid,value是数据库表查出的list
Map> colorMap=new HashMap>();
List goodsColorList=new ArrayList();

while (rs.next()) {
goodsColor=new GoodsColor();
goodsColor.setId(rs.getInt("id"));
goodsColor.setGid(rs.getInt("gid"));
goodsColor.setColorName(rs.getString("colorName"));
goodsColor.setPrice(rs.getDouble("price"));

goodsColorList.add(goodsColor);
colorMap.put(rs.getInt("gid"),goodsColorList);

}
[/code]

问题是现在把所有数据累加到goodsColorList然后又存入到colorMap,而且colorMap的key也重复了。
[code="java"]
id gid 颜色 价格

2 1 蓝黑 4000.00
3 2 银色 1220.00
4 2 黑色 1220.00
5 3 白色 1050.00
6 3 紫色 1050.00
7 3 蓝色 1050.00
8 3 黑色 1100.00
9 3 粉色 1100.00

[/code]
想得到的效果是colorMap里不同的key存放不同的value。
求指教! :( :(

  • 写回答

3条回答 默认 最新

  • iteye_3843 2011-04-20 16:21
    关注

    [code="java"]
    while(rs.next()){
    int gid = rs.getInt("gid");
    if (colorMap.containsKey(gid) && colorMap.get(gid) != null) {
    goodsColor = new GoodsColor();
    goodsColor.setId(rs.getInt("id"));
    goodsColor.setGid(rs.getInt("gid"));
    goodsColor.setColorName(rs.getString("colorName"));
    goodsColor.setPrice(rs.getDouble("price"));
    colorMap.get(gid).add(goodsColor);
    } else {
    List goodsColorList=new ArrayList();

    goodsColor = new GoodsColor();
    goodsColor.setId(rs.getInt("id"));
    goodsColor.setGid(rs.getInt("gid"));
    goodsColor.setColorName(rs.getString("colorName"));
    goodsColor.setPrice(rs.getDouble("price"));
    goodsColorList.add(goodsColor);
    colorMap.put(rs.getInt("gid"), goodsColorList);
    }
    }
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题