Как записать пары значений ключей в карту в цикле, не перезаписывая их? - PullRequest
0 голосов
/ 23 сентября 2019

моя проблема в следующем: я делаю выборку в своей базе данных и хочу записать значения каждой записи, которую я получаю на карте.Когда я делаю это, у меня только значения одной записи на моей карте, потому что функция put () перезаписывает записи каждый раз, когда цикл начинается снова.Так как мне нужно передать пары Key: Value через JSON в мой Javascript и записать что-то в поле для каждой пары Key: Value, ArrayList не подходит.

Я уже пытался преобразовать ArrayList, который содержит карту, карту или строку, а затем карту, но мне не удалось.

РЕДАКТИРОВАТЬ: Вот мой код

def valueArray = new ArrayList();
def recordValues = [:]
while (rs.next())
        {
            fremdlKorr = rs.getFloatValue(1)
            leistungKorr = rs.getFloatValue(2)
            materialKorr = rs.getFloatValue(3)
            strid = rs.getStringValue(4)

            recordValues.put("strid", strid);
            recordValues.put("material", materialKorr);
            recordValues.put("fremdl", fremdlKorr);
            recordValues.put("leistung", leistungKorr);

            valueArray.add(korrekturWerte);
        }

ArrayList был просто тестом, я не хочу иметь ArrayList, мне нужна карта.

1 Ответ

2 голосов
/ 23 сентября 2019

Код, как написано, даст вам список карт, но все карты будут содержать значения последней строки.Причиной является def recordValues = [:], который находится вне цикла while.Таким образом, вы в основном добавляете всегда одну и ту же карту в список, и значения карты перезаписываются в каждом цикле.

При перемещении кода это решит проблему, вместо этого я буду использовать Sql .Все сводится к:

def valueArray = sql.rows("select strid, material, fremdl, leistung from ...")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...