Guava Multimap – TreeMultimap Implementation Example
Guava Multimap – TreeMultimap Implementation
The TreeMultimap is a variation of a Map in which multiple values or objects are associated with a single key but it will return a sorted list of objects according to their natural ordering without any duplicate key/value pairs. In this example, you will notice that the values are all sorted in order and Amaury Valdes appears only once in the Multimap element with a key of 777. Notice how duplicates are not allowed and silently fail to be added.
Methods available to TreeMultimap
@GwtCompatible(serializable=true, emulated=true)
public class TreeMultimap<K,V>>
extends Object
# | Method and Description |
---|---|
1 | NavigableMap<K,Collection<V>> asMap() Returns a map view that associates each key with the corresponding values in the multimap. |
2 | void clear() Removes all key-value pairs from the multimap, leaving it empty. |
3 | boolean 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. |
4 | boolean containsKey(Object keyName) Returns true if this multimap contains at least one key-value pair with the key keyName. |
5 | boolean containsValue(Object valueName) Returns true if this multimap contains at least one key-value pair with the value valueName. |
6 | static <K extends Comparable,V extends Comparable> TreeMultimap<K,V> create() Creates an empty TreeMultimap ordered by the natural ordering of its keys and values. |
7 | static <K,V> TreeMultimap<K,V> create(Comparator<? super K> keyComparator, Comparator<? super V> valueComparator) Creates an empty TreeMultimap instance using explicit comparators. |
8 | static <K extends Comparable,V extends Comparable> TreeMultimap<K,V> create(Multimap<? extends K,? extends V> multimap) Constructs a TreeMultimap, ordered by the natural ordering of its keys and values, with the same mappings as the specified multimap. |
9 | Set<Map.Entry<K,V>> entries() Returns a view collection of all key-value pairs contained in this multimap, as Map.Entry instances. |
10 | boolean equals(Object obj) Compares the specified object with this multimap for equality. |
11 | NavigableSet<V> get(K key) Returns a collection view of all values associated with a key. |
12 | int hashCode() Returns the hash code for this multimap. |
13 | boolean isEmpty() Returns true if this multimap contains no key-value pairs. |
14 | Comparator<? super K> keyComparator() Returns the comparator that orders the multimap keys. |
15 | Multiset<K> keys() Returns a view collection containing the key from each key-value pair in this multimap, without collapsing duplicates. |
16 | NavigableSet<K> keySet() Returns a view collection of all distinct keys contained in this multimap. |
17 | boolean put(K key, V value) Stores a key-value pair in this multimap. |
18 | boolean 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. |
19 | boolean putAll(Multimap<? extends K,? extends V> multimap) Stores all key-value pairs of multimap in this multimap, in the order returned by multimap.entries(). |
20 | boolean 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. |
21 | SortedSet<V> removeAll(Object key) Removes all values associated with the key keyName. |
22 | SortedSet<V> replaceValues(K key, Iterable<? extends V> values) Stores a collection of values with the same key, replacing any existing values for that key. |
23 | int size() Returns the number of key-value pairs in this multimap. |
24 | int size() Returns the number of key-value pairs in this multimap. |
25 | String toString() Returns a string representation of the multimap, generated by calling toString on the map returned by Multimap.asMap(). |
26 | Comparator<? super V> valueComparator() Returns the comparator that orders the multimap values, with null indicating that natural ordering is used. |
27 | Collection<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 TreeMultimap 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("myTreeMultimap: " + myArrayListMultimap); logger.info("No duplicates allowed, Sorted Set..."); SortedSetMultimap<String,String> myTreeMultimap = TreeMultimap.create(); myTreeMultimap.put("777", "Amaury Valdes"); myTreeMultimap.put("777", "Walter White"); myTreeMultimap.put("777", "Eric Hamlin"); myTreeMultimap.put("777", "John Smith"); myTreeMultimap.put("777", "Eric Hamlin"); logger.info("myTreeMultimap: " + myTreeMultimap); } }
Output
22:02:31.310 [main] INFO com.avaldes.GuavaSetMultiMapExample - ---myTreeMultimap---------- 22:02:31.314 [main] INFO com.avaldes.GuavaSetMultiMapExample - No duplicates allowed, Sorted Set... 22:02:31.329 [main] INFO com.avaldes.GuavaSetMultiMapExample - myTreeMultimap: {777=[Amaury Valdes, Eric Hamlin, John Smith, Walter White]}
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!!!
Related Posts
- Guava Multimap - ArrayListMultimap Implementation Example
In this tutorial we will cover implementing an ArrayListMultimap (which allows duplicate key/value pairs). - Guava Multimap - HashMultimap Implementation Example
In this tutorial we will cover implementing an HashMultimap which does not allow duplicate key/value pairs, using HashMultimap. - Guava Multimap - TreeMultimap Implementation Example
In this tutorial we will cover a implementing an TreeMultimap which performs Sorting according to natural order and does not allow duplicate key/value pairs. - Guava Multiset Example
In this tutorial we will cover a basic introduction the to Guava's Multiset collection using easy to follow example to show you how best to implement this collection in your own code. - Guava BiMap Example (Bi-Directional Map)
In this tutorial we will cover a basic introduction the to Guava's Bidirectional Map (BiMap) using easy to follow example to show you how best to implement this collection in your own code. - Guava Table Example
In this tutorial we will cover a basic introduction the to Guava's Table using easy to follow example to show you how best to implement this collection in your own code. - Guava ClassToInstanceMap Example
In this tutorial we show you how to use Guava's ClassToInstanceMap collection to store class type as the key and the instance of the collection as a value.
Please Share Us on Social Media






Leave a Reply