我想从一个结果集中创建多个哈希图。
最终结果应该类似于以下内容;
{
slot_name = recommend,
data = 7,
},
{
slot_name = service,
data = Good,
},
{
slot_name = staff,
data = Great,
},
我尝试如下:
HashMap<String, String> data = new HashMap<String, String>();
while (resultSet.next()) {
data.put("slot_name", resultSet.getString("name"));
data.put("data", resultSet.getString("param_value"));
}
但是当我打印出哈希图的值时,我得到一条记录,如下所示
System.out.println(data);
{
slot_name = staff,
data = Great,
}
我该如何实现?有人协助,谢谢
答案 0 :(得分:1)
我建议有一个列表,并为“ slot_name”和“ data”创建一个模型类(而不是HashMaps)。在循环内部,构造对象并添加到列表中。之所以不能如预期那样,是因为HashMap将具有唯一的键。因此,对于再次添加该值的同一键,它将被更新。
class YourModel {
String slotName;
String data;
}
// inside loop
list.add(new YourModel(resultSet.getString("name"), resultSet.getString("param_value"));
答案 1 :(得分:0)
HashMap是键值存储。如果您多次输入相同的密钥,则先前的密钥将被覆盖。这就是您仅在输出中看到最后一个条目的原因。
如果您想要多个地图,请创建多个地图。 例如,
List<HashMap<String,String> maps = new ArrayList();
while (resultSet.next()) {
HashMap<String, String> data = new HashMap<String, String>();
data.put("slot_name", resultSet.getString("name"));
data.put("data", resultSet.getString("param_value"));
maps.add(data);
}