Guava Multimap – ArrayListMultimap Implementation Example

Guava Multimap – ArrayListMultimap Implementation

The ArrayListMultimap is a variation of a Map in which multiple values or objects are associated with a single key but it allows duplicate key/value pairs in the Map. In this example, you will notice that the value of Amaury Valdes appears in the Multimap element with a key of 777. Notice how duplicates are allowed when I add another Amaury Valdes instance into the Map.

Methods available to ArrayListMultimap

@GwtCompatible
public interface Multimap<K,V>

#Method and Description
1Map<K,Collection<V>> asMap()
Returns a view of this multimap as a Map from each distinct key to the nonempty collection of that key’s associated values.
2void clear()
Removes all key-value pairs from the multimap, leaving it empty.
3boolean containsEntry(Object key, Object value)
Returns true if this multimap contains at least one key-value pair with the key key and the value value.
4boolean containsKey(Object keyName)
Returns true if this multimap contains at least one key-value pair with the key keyName.
5boolean containsValue(Object valueName)
Returns true if this multimap contains at least one key-value pair with the value valueName.
6Collection<Map.Entry<K,V>> entries()
Returns a view collection of all key-value pairs contained in this multimap, as Map.Entry instances.
7boolean equals(Object obj)
Compares the specified object with this multimap for equality.
8Collection<V> get(K key)
Returns a view collection of the values associated with key in this multimap, if any.
9int hashCode()
Returns the hash code for this multimap.
10boolean isEmpty()
Returns true if this multimap contains no key-value pairs.
11Multiset<K> keys()
Returns a view collection containing the key from each key-value pair in this multimap, without collapsing duplicates.
12Set<K> keySet()
Returns a view collection of all distinct keys contained in this multimap.
13boolean put(K key, V value)
Stores a key-value pair in this multimap.
14boolean putAll(K key, Iterable<? extends V> values)
Stores a key-value pair in this multimap for each of values, all using the same key, key.
15boolean putAll(Multimap<? extends K,? extends V> multimap)
Stores all key-value pairs of multimap in this multimap, in the order returned by multimap.entries().
16boolean remove(Object key, Object value)
Removes a single key-value pair with the key key and the value value from this multimap, if such exists.
17Collection<V> removeAll(Object keyName)
Removes all values associated with the key keyName.
18Collection<V> replaceValues(K key, Iterable<? extends V> values)
Stores a collection of values with the same key, replacing any existing values for that key.
19int size()
Returns the number of key-value pairs in this multimap.
20Collection<V> values()
Returns a view collection containing the value from each key-value pair contained in this multimap, without collapsing duplicates (so values().size() == size()).

Java ArrayListMultimap Example of Guava Multimap

package com.avaldes;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.HashMultimap;
import com.google.common.collect.Multimap;
import com.google.common.collect.SortedSetMultimap;
import com.google.common.collect.TreeMultimap;

public class GuavaSetMultiMapExample {
  
  public static void main(String[] args) {
    Logger logger = LoggerFactory.getLogger(GuavaSetMultiMapExample.class);

    logger.info("---myArrayListMultimap----------");
    logger.info("Duplicates allowed, Not Sorted...");
    Multimap<String,String> myArrayListMultimap = ArrayListMultimap.create();
    myArrayListMultimap.put("777", "Amaury Valdes");
    myArrayListMultimap.put("777", "Walter White");
    myArrayListMultimap.put("777", "John Smith");
    myArrayListMultimap.put("777", "Eric Hamlin");
    myArrayListMultimap.put("777", "Amaury Valdes");
  }
}

Output

21:51:58.529 [main] INFO  com.avaldes.GuavaSetMultiMapExample - ---myArrayListMultimap----------
21:51:58.534 [main] INFO  com.avaldes.GuavaSetMultiMapExample - Duplicates allowed, Not Sorted...
21:51:58.543 [main] INFO  com.avaldes.GuavaSetMultiMapExample - myTreeMultimap: {777=[Amaury Valdes, Walter White, John Smith, Eric Hamlin, Amaury Valdes]}

That’s It!

I hope you enjoyed this tutorial. Please continue to share the love and like us so that we can continue bringing you quality tutorials. Happy Guava Coding!!!

GuavaMultimapArrayList

Related Posts

Please Share Us on Social Media

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Leave a Reply

Your email address will not be published. Required fields are marked *