Italia1235
@Italia1235

Как добавить в массив в мапе?

коллеги, подскажите плз.
Есть, класс и мапа.

class Payload1 {
     String summary;
     String issueKey;
     String description;
     String displayName;
}


HashMap<String,ArrayList<Payload1>> mapa1 = new HashMap<>();

Пытаюсь написать условие, если уже есть ключ в мапе. То нужно не затирать массив Payload1 а добавить к нему елемент.

if(mapa1.containsKey(assigneeMail)){
     mapa1.put(assigneeMail, mapa1.get(assigneeMail).add(new Payload1( it.getSummary(),  it.getKey(),  it.getDescription(), it.getAssignee().getDisplayName())))
   }
    else mapa1.put(assigneeMail,[new Payload1( it.getSummary(),  it.getKey(),  it.getDescription(),  it.getAssignee().getDisplayName())])


Первое условие не добавляет к нему элемент, а изменяет велью мапы на true. Не могу понять где затык.
  • Вопрос задан
  • 132 просмотра
Решения вопроса 1
libalex
@libalex
Backend / Android Developer (Java, Kotlin)
Ну, например так
if (mapa1.containsKey(assigneeMail)) {
    ArrayList<Payload1> payloads = mapa1.get(assigneeMail);
    payloads.add(new Payload1(it.getSummary(), it.getKey(), it.getDescription(), it.getAssignee().getDisplayName()));
    mapa1.replace(assigneeMail, payloads);
} else {
    mapa1.put(assigneeMail, new ArrayList<>(List.of(new Payload1(it.getSummary(), it.getKey(), it.getDescription(), it.getAssignee().getDisplayName()))));
}

С Java 8 в Map появился метод merge ещё.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы