Как обновить значение в MultiValueMap для определенного ключа

У меня есть MultiValueMap, как

{3=[c-2, c-2], 2=[b-1, b-1], 1=[a-1, a-2, a-3]}

В какой-то момент мне нужно обновить одно значение конкретного ключа, например, мне нужно обновить ключ 2 лайк

2=[u-1,u-2]

Как я могу это сделать?

2 ответа

Я никогда не использовал эту библиотеку - но я ожидаю, что эти два примера сделают то, что вам нужно:

multiMap.getCollection(2).clear();
multiMap.putAll(2, Arrays.asList("u-1", "u-2"));

Или же

Collection c = multiMap.getCollection(2);
c.clear();
Collections.addAll(c, "u-1", "u-2");

Самый безопасный способ - позвонить getCollection() чтобы получить текущее отображение, remove(key) чтобы очистить это сопоставление, выполните итерацию полученной коллекции, чтобы заново вставить значения, которые вы хотите сохранить, и / или добавить новые значения.

Если вы знаете тип коллекции, используемой для отображения (потому что вы вызвали конструктор, который принимает collectionFactory), вы можете получить коллекцию и обновить ее напрямую.

Другие вопросы по тегам