Как создать несколько хеш-таблиц значений ключей из набора результатов - PullRequest
0 голосов
/ 05 июля 2019

Я хотел бы создать несколько хэш-карт из набора результатов.

Окончательный результат должен выглядеть примерно так:

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

Но когда я распечатываю значение hashmap, я получаю одну запись, как показано ниже System.out.println(data);

{
  slot_name = staff,
  data = Great,
}

Как мне этого добиться? Кто-нибудь помогите, спасибо

Ответы [ 2 ]

1 голос
/ 05 июля 2019

Я бы рекомендовал иметь список и создать класс модели (вместо HashMaps) для "slot_name" и "data". Внутри цикла создайте объект и добавьте в список. Причина, по которой вы не получаете ожидаемого результата, заключается в том, что HashMap будет иметь уникальные ключи. Таким образом, для того же ключа, когда значение будет добавлено снова, оно будет обновлено.

class YourModel {
    String slotName;
    String data;
}

// inside loop
list.add(new YourModel(resultSet.getString("name"), resultSet.getString("param_value"));
0 голосов
/ 05 июля 2019

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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...