@@ -0,0 +1,1603 @@
+/*%0A * Copyright (c) 2015-2018 Dzikoysk%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22);%0A * you may not use this file except in compliance with the License.%0A * You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage org.panda_lang.panda.utilities.commons.collection;%0A%0Aimport org.jetbrains.annotations.Nullable;%0A%0Aimport java.io.Serializable;%0Aimport java.util.Collection;%0Aimport java.util.Map;%0Aimport java.util.function.Supplier;%0A%0Apublic class Multimap%3CK, V%3E implements Serializable %7B%0A%0A    private final Map%3CK, Collection%3CV%3E%3E map;%0A    private final Supplier%3CCollection%3CV%3E%3E collectionSupplier;%0A%0A    public Multimap(Map%3CK, Collection%3CV%3E%3E map, Supplier%3CCollection%3CV%3E%3E collectionSupplier) %7B%0A        this.map = map;%0A        this.collectionSupplier = collectionSupplier;%0A    %7D%0A%0A    public void put(K key, V value) %7B%0A        Collection%3CV%3E collection = map.computeIfAbsent(key, k -%3E collectionSupplier.get());%0A        collection.add(value);%0A    %7D%0A%0A    public void put(K key, Collection%3CV%3E values) %7B%0A        Collection%3CV%3E collection = map.computeIfAbsent(key, k -%3E collectionSupplier.get());%0A        collection.addAll(values);%0A    %7D%0A%0A    public @Nullable Collection%3CV%3E get(K key) %7B%0A        return map.get(key);%0A    %7D%0A%0A%7D%0A

Implement Multimap