emon
1/8/2020 - 8:39 AM

Java Duplicate Keys (Set, Map)

Two approaches:

  1. apache.commons org.apache.commons commons-collections4
  2. guava com.google.guava guava

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);