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){}
我创建了一张新地图。然后我把值放到地图上。但是地图会覆盖一些值吗?为什么?不增加
答案 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);
}
}