比如说,我一张表中取出一些数据,同一天有多条记录,我先定义了一个map集合,value是一个数组 应该怎么写
我的代码如下:while (rs.next()) {
cardnumber = rs.getString("cardnumber");
alltime = rs.getTimestamp("alltime");
System.out.println(cardnumber + "," + alltime);Map<String, Timestamp[]> map = new HashMap<String, Timestamp[]>();
String str = cardnumber;
Timestamp[] arr = { alltime };map.put(str, arr);
希望解答下,最好能基于我上面改正下

解决方案 »

  1.   

    MAP 和LIST 组合用
    key 是用户ID value是用户记录的list 有了新记录 继续list.add
      

  2.   

    不太喜欢数组,这是用map 加 list的:
    Map<String, List<String>> map = new HashMap<String, List<String>();
    List<String> lst = new ArrayList<String>();
    String cardnumber = "";
    String alltime = "";
    while (rs.next()) {
    cardnumber = rs.getString("cardnumber");
    alltime = rs.getTimestamp("alltime");
    lst.add(alltime);
    }
    map.put(cardnumber, lst);
      

  3.   

    按照你的意思理解,数组用List集合代替了: while (rs.next()) {
    cardnumber = rs.getString("cardnumber");
    alltime = rs.getTimestamp("alltime");
    Map<String, List<Timestamp>> map = new HashMap<String, List<Timestamp>>();
    if(map.containsKey(cardnumber)){//已经存在cardnumber key
    List<Timestamp> times = map.get(cardnumber);//获取存在的key对应的集合对象
    times.add(alltime);
    map.put(cardnumber, times);
    }else{//不存在cardnumber key
    List<Timestamp> times = new ArrayList<Timestamp>();
    times.add(alltime);
    map.put(cardnumber, times);
    }
    }
      

  4.   


    这么写,请问map有什么用》?alltime还有必要保存在times 中?
      

  5.   

    基本上这么写就行了,吧else去掉好了