【问题标题】:java map string string not increasingjava映射字符串字符串不增加
【发布时间】:2016-07-18 09:44:04
【问题描述】:
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){}

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

【问题讨论】:

  • 如果键相同,那么它将覆盖以前的值
  • 一种更传统的缩进方法可以让你的代码更容易被帮助你的人阅读。
  • 有些值是一样的

标签: java dictionary hashmap


【解决方案1】:

Map 只为每个键存储一个值。如果要为同一个键存储多个值,可以使用List&lt;String&gt;Set&lt;String&gt; 作为 Map 的值。

         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);
             }

         }

【讨论】:

    猜你喜欢
    • 2020-10-09
    • 1970-01-01
    • 2012-08-21
    • 1970-01-01
    • 2011-02-19
    • 2017-01-16
    • 2014-07-14
    • 1970-01-01
    • 2011-11-21
    相关资源
    最近更新 更多