Guava - Useful Classes
- Guava - Optional Class
- Guava - Preconditions Class
- Guava - Ordering Class
- Guava - Objects Class
- Guava - Range Class
- Guava - Throwables Class
- Guava - LoadingCache Interface
Guava - Collection Utilities
- Guava - Collections Utilities
- Guava - MultiSet Interface
- Guava - MultiMap Interface
- Guava - BiMap Interface
- Guava - Table Interface
Guava - String Utilities
- Guava - String Utilities
- Guava - Joiner class
- Guava - Splitter
- Guava - CharMatcher
- Guava - CaseFormat
Guava - Primitive Utilities
- Guava - Primitive Utilities
- Guava - Bytes
- Guava - Shorts
- Guava - Ints
- Guava - Longs
- Guava - Floats
- Guava - Doubles
- Guava - Chars
- Guava - Booleans
Guava - Math Utilities
Guava - Useful Resources
Guava - MultiMap Interface
Multimap interface extends Map so that its keys can be mapped to multiple values at a time.
Interface Declaration
Following is the declaration for com.google.common.collect.Multimap<K,V> interface −
@GwtCompatible public interface Multimap<K,V>
| Sr.No | Method & Description |
|---|---|
| 1 |
Map<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. |
| 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 and the value. |
| 4 |
boolean containsKey(Object key) Returns true if this multimap contains at least one key-value pair with the key. |
| 5 |
boolean containsValue(Object value) Returns true if this multimap contains at least one key-value pair with the value. |
| 6 |
Collection<Map.Entry<K,V>> entries() Returns a view collection of all key-value pairs contained in this multimap, as Map.Entry instances. |
| 7 |
boolean equals(Object obj) Compares the specified object with this multimap for equality. |
| 8 |
Collection<V> get(K key) Returns a view collection of the values associated with key in this multimap, if any. |
| 9 |
int hashCode() Returns the hash code for this multimap. |
| 10 |
boolean isEmpty() Returns true if this multimap contains no key-value pairs. |
| 11 |
Multiset<K> keys() Returns a view collection containing the key from each key-value pair in this multimap, without collapsing duplicates. |
| 12 |
Set<K> keySet() Returns a view collection of all distinct keys contained in this multimap. |
| 13 |
boolean put(K key, V value) Stores a key-value pair in this multimap. |
| 14 |
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. |
| 15 |
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(). |
| 16 |
boolean remove(Object key, Object value) Removes a single key-value pair with the key and the value from this multimap, if such exists. |
| 17 |
Collection<V> removeAll(Object key) Removes all values associated with the key. |
| 18 |
Collection<V> replaceValues(K key, Iterable<? extends V> values) Stores a collection of values with the same key, replacing any existing values for that key. |
| 19 |
int size() Returns the number of key-value pairs in this multimap. |
| 20 |
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()). |
Example - Printing maps of a Multimap
GuavaTester.java
package com.tutorialspoint;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
public class GuavaTester {
public static void main(String args[]) {
GuavaTester tester = new GuavaTester();
Multimap<String,String> multimap = tester.getMultimap();
List<String> lowerList = (List<String>)multimap.get("lower");
System.out.println("Initial lower case list");
System.out.println(lowerList.toString());
List<String> upperList = (List<String>)multimap.get("upper");
System.out.println("Initial upper case list");
System.out.println(upperList.toString());
}
private Multimap<String,String> getMultimap() {
//Map<String, List<String>>
// lower -> a, b, c, d, e
// upper -> A, B, C, D
Multimap<String,String> multimap = ArrayListMultimap.create();
multimap.put("lower", "a");
multimap.put("lower", "b");
multimap.put("lower", "c");
multimap.put("lower", "d");
multimap.put("lower", "e");
multimap.put("upper", "A");
multimap.put("upper", "B");
multimap.put("upper", "C");
multimap.put("upper", "D");
return multimap;
}
}
Output
Run the GuavaTester and verify the output −
Initial lower case list [a, b, c, d, e] Initial upper case list [A, B, C, D]
Example - Modifying maps of a Multimap
GuavaTester.java
package com.tutorialspoint;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
public class GuavaTester {
public static void main(String args[]) {
GuavaTester tester = new GuavaTester();
Multimap<String,String> multimap = tester.getMultimap();
List<String> lowerList = (List<String>)multimap.get("lower");
lowerList.add("f");
System.out.println("Modified lower case list");
System.out.println(lowerList.toString());
List<String> upperList = (List<String>)multimap.get("upper");
upperList.remove("D");
System.out.println("Modified upper case list");
System.out.println(upperList.toString());
}
private Multimap<String,String> getMultimap() {
//Map<String, List<String>>
// lower -> a, b, c, d, e
// upper -> A, B, C, D
Multimap<String,String> multimap = ArrayListMultimap.create();
multimap.put("lower", "a");
multimap.put("lower", "b");
multimap.put("lower", "c");
multimap.put("lower", "d");
multimap.put("lower", "e");
multimap.put("upper", "A");
multimap.put("upper", "B");
multimap.put("upper", "C");
multimap.put("upper", "D");
return multimap;
}
}
Output
Run the GuavaTester and verify the output −
Modified lower case list [a, b, c, d, e, f] Modified upper case list [A, B, C]
Example - Getting Multimap as a Map
GuavaTester.java
package com.tutorialspoint;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
public class GuavaTester {
public static void main(String args[]) {
GuavaTester tester = new GuavaTester();
Multimap<String,String> multimap = tester.getMultimap();
Map<String, Collection<String>> map = multimap.asMap();
System.out.println("Multimap as a map");
for (Map.Entry<String, Collection<String>> entry : map.entrySet()) {
String key = entry.getKey();
Collection<String> value = multimap.get("lower");
System.out.println(key + ":" + value);
}
System.out.println("Keys of Multimap");
Set<String> keys = multimap.keySet();
for(String key:keys) {
System.out.println(key);
}
System.out.println("Values of Multimap");
Collection<String> values = multimap.values();
System.out.println(values);
}
private Multimap<String,String> getMultimap() {
//Map<String, List<String>>
// lower -> a, b, c, d, e
// upper -> A, B, C, D
Multimap<String,String> multimap = ArrayListMultimap.create();
multimap.put("lower", "a");
multimap.put("lower", "b");
multimap.put("lower", "c");
multimap.put("lower", "d");
multimap.put("lower", "e");
multimap.put("upper", "A");
multimap.put("upper", "B");
multimap.put("upper", "C");
multimap.put("upper", "D");
return multimap;
}
}
Output
Run the GuavaTester and verify the output −
Multimap as a map upper:[a, b, c, d, e, f] lower:[a, b, c, d, e, f] Keys of Multimap upper lower Values of Multimap [a, b, c, d, e, f, A, B, C]