Легко добавить мультикарту в Java 8 с выражением lamda с различными значениями, как и ожидалось. Вот пример кода. Вы можете попробовать.
public class TestMultiMap<K, V> {
private final Map<K, Set<V>> multiValueMap = new HashMap<>();
public void put(K key, V value) {
this.multiValueMap.computeIfAbsent(key, k -> new HashSet<>()).add(value);
}
public Set<V> get(K key) {
return this.multiValueMap.getOrDefault(key, Collections.emptySet());
}
}
Метод computeIfAbsent () принимает ключ и лямбду. Если этот ключ не существует, запускается computeIfAbsent () и создается новый HashMap.
Метод getOrDefault () возвращает значение или возвращает пустой набор, если ключ найден как нулевой.
Чтобы использовать это
TestMultiMap<String,Object> testMultiMap = new TestMultiMap<>();
testMultiMap.put("Key 1", new Object());
testMultiMap.put("Key 2", "String 1");
testMultiMap.put("Key 3", 1);