@@ -0,0 +1,962 @@
+package org.hanuna.gitalk.common;%0A%0Aimport org.jetbrains.annotations.NotNull;%0A%0Aimport java.util.*;%0A%0A/**%0A * @author erokhins%0A */%0Apublic class MultiMap%3CK, V%3E %7B%0A    public Map%3CK, List%3CV%3E%3E keyToListValues = new HashMap%3CK, List%3CV%3E%3E();%0A%0A%0A    public void put(@NotNull K key, @NotNull V value) %7B%0A        List%3CV%3E values = keyToListValues.get(key);%0A        if (values == null) %7B%0A            values = new ArrayList%3CV%3E();%0A            keyToListValues.put(key, values);%0A        %7D%0A        values.add(value);%0A    %7D%0A%0A    public void remove(@NotNull K key, @NotNull V value) %7B%0A        List%3CV%3E values = keyToListValues.get(key);%0A        if (values != null) %7B%0A            values.remove(value);%0A        %7D%0A    %7D%0A%0A    @NotNull%0A    public List%3CV%3E get(@NotNull K key) %7B%0A        List%3CV%3E values = keyToListValues.get(key);%0A        if (values != null) %7B%0A            return Collections.unmodifiableList(values);%0A        %7D else %7B%0A            return Collections.emptyList();%0A        %7D%0A    %7D%0A%0A%7D%0A

add MultiMap