Two approaches:
Source: 1. https://www.baeldung.com/java-map-duplicate-keys 2. https://www.baeldung.com/guava-multiset
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
map.put("key1", "value1");
map.put("key1", "value2");
map.put("key1", "value2");
System.out.println(map.get("key1"));
MultiValuedMap<String, String> setValuedHashMap = new HashSetValuedHashMap<>();
setValuedHashMap.put("key1", "value1");
setValuedHashMap.put("key1", "value1");
setValuedHashMap.put("key1", "value2");
System.out.println(setValuedHashMap);
MultiValuedMap<String, String> map = new ArrayListValuedHashMap<>();
map.put("key1", "value1");
map.put("key1", "value2");
MultiValuedMap<String, String> immutableMap = MultiMapUtils.unmodifiableMultiValuedMap(map);
immutableMap.put("key1", "value3");
System.out.println(immutableMap); Multimap<String, String> map = ArrayListMultimap.create();
map.put("key1", "value2");
map.put("key1", "value1");
System.out.println(map.get("key1"));
Multimap<String, String> map = LinkedHashMultimap.create();
map.put("key1", "value3");
map.put("key1", "value1");
map.put("key1", "value2");
System.out.println(map);
Multiset<String> bookStore = HashMultiset.create();
bookStore.add("Potter");
bookStore.add("Potter");
bookStore.add("Potter");
System.out.println(bookStore);
// adding 50 copies
bookStore.setCount("Potter", 50);
System.out.println(bookStore);
// updates the count to 5 if the current value is 50
bookStore.setCount("Potter", 50, 5);
System.out.println(bookStore);