java map字符串字符串不增加

时间:2016-07-18 09:44:04

标签: java dictionary hashmap

Map<String, String> map = new HashMap<String, String>();             
     ObservableList<Object> row2 = FXCollections.observableArrayList();
           try {
            connected();
            String sql = "SELECT `20`.startdate, `20`.enddate, `20`.number FROM `20`";
             ResultSet rs = statement.executeQuery(sql);
             while(rs.next()){
                 String sd = rs.getString(3);
                 LocalDate std = rs.getDate(1).toLocalDate();
                 LocalDate end = rs.getDate(2).toLocalDate();
                  while (!std.equals(end)) {
                  std = std.plusDays(1);
                  String st = std.toString();
                  map.put(sd,st);
                  }

             }
             closed();}
              catch(Exception e){}

我创建了一张新地图。然后我把值放到地图上。但是地图会覆盖一些值吗?为什么?不增加

1 个答案:

答案 0 :(得分:0)

Map仅为每个键存储一个值。如果您要为同一个密钥存储多个值,则可以使用List<String>Set<String>作为地图的值。

         Map<String, List<String>> map = new HashMap<String, List<String>>();   
         while(rs.next()){
             String sd = rs.getString(3);
             LocalDate std = rs.getDate(1).toLocalDate();
             LocalDate end = rs.getDate(2).toLocalDate();
             while (!std.equals(end)) {
                 std = std.plusDays(1);
                 String st = std.toString();
                 List<String> values = map.get(sd);
                 if (values == null) {
                     values = new ArrayList<String>();
                     map.put(sd,values);
                 } 
                 values.add(st);
             }

         }