Package aQute.lib.collections
Class MultiMap<K,V>
- java.lang.Object
-
- aQute.lib.collections.MultiMap<K,V>
-
- All Implemented Interfaces:
java.util.Map<K,java.util.List<V>>
public class MultiMap<K,V> extends java.lang.Object implements java.util.Map<K,java.util.List<V>>
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Class<K>keyClassprivate java.util.Map<K,java.util.List<V>>mapprivate booleannoduplicatesprivate java.lang.Class<V>valueClass
-
Constructor Summary
Constructors Constructor Description MultiMap()MultiMap(boolean noduplicates)MultiMap(MultiMap<S,T> other)MultiMap(java.lang.Class<? extends K> keyClass, java.lang.Class<? extends V> valueClass, boolean noduplicates)MultiMap(java.util.Map<? extends K,? extends java.util.Collection<? extends V>> other)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(K key, V value)booleanaddAll(java.util.Map<? extends K,? extends java.util.Collection<? extends V>> other)booleanaddAll(K key, java.util.Collection<? extends V> value)java.util.Iterator<V>all()java.util.List<V>allValues()Return a collection with all valuesvoidclear()java.util.List<V>compute(K key, java.util.function.BiFunction<? super K,? super java.util.List<V>,? extends java.util.List<V>> remappingFunction)java.util.List<V>computeIfAbsent(K key, java.util.function.Function<? super K,? extends java.util.List<V>> mappingFunction)java.util.List<V>computeIfPresent(K key, java.util.function.BiFunction<? super K,? super java.util.List<V>,? extends java.util.List<V>> remappingFunction)booleancontainsKey(java.lang.Object key)booleancontainsValue(java.lang.Object value)java.util.Set<java.util.Map.Entry<K,java.util.List<V>>>entrySet()booleanequals(java.lang.Object obj)java.util.Map<K,V>flatten()voidforEach(java.util.function.BiConsumer<? super K,? super java.util.List<V>> action)static <T extends java.lang.Comparable<? super T>>
java.lang.Stringformat(java.util.Map<T,? extends java.util.Collection<?>> map)java.util.List<V>get(java.lang.Object key)java.util.List<V>getOrDefault(java.lang.Object key, java.util.List<V> defaultValue)inthashCode()booleanisEmpty()java.util.Iterator<V>iterate(K key)java.util.Set<K>keySet()java.util.List<V>merge(K key, java.util.List<V> value, java.util.function.BiFunction<? super java.util.List<V>,? super java.util.List<V>,? extends java.util.List<V>> remappingFunction)private java.util.List<V>newValue(K key)(package private) static java.lang.Stringpad(int i)java.util.List<V>put(K key, java.util.List<V> value)voidputAll(java.util.Map<? extends K,? extends java.util.List<V>> m)java.util.List<V>putIfAbsent(K key, java.util.List<V> value)java.util.List<V>remove(java.lang.Object key)booleanremove(java.lang.Object key, java.lang.Object value)booleanremoveAll(K key, java.util.Collection<? extends V> value)booleanremoveValue(K key, V value)java.util.List<V>replace(K key, java.util.List<V> value)booleanreplace(K key, java.util.List<V> oldValue, java.util.List<V> newValue)voidreplaceAll(java.util.function.BiFunction<? super K,? super java.util.List<V>,? extends java.util.List<V>> function)intsize()java.lang.StringtoString()MultiMap<V,K>transpose()MultiMap<V,K>transpose(boolean noduplicates)java.util.Collection<java.util.List<V>>values()private java.util.stream.Stream<V>valuesStream()(package private) static java.lang.Stringvertical(int padding, java.util.Collection<?> used)
-
-
-
Constructor Detail
-
MultiMap
public MultiMap()
-
MultiMap
public MultiMap(boolean noduplicates)
-
MultiMap
public MultiMap(java.lang.Class<? extends K> keyClass, java.lang.Class<? extends V> valueClass, boolean noduplicates)
-
MultiMap
public MultiMap(java.util.Map<? extends K,? extends java.util.Collection<? extends V>> other)
-
MultiMap
public MultiMap(MultiMap<S,T> other)
-
-
Method Detail
-
addAll
public boolean addAll(java.util.Map<? extends K,? extends java.util.Collection<? extends V>> other)
-
valuesStream
private java.util.stream.Stream<V> valuesStream()
-
all
public java.util.Iterator<V> all()
-
allValues
public java.util.List<V> allValues()
Return a collection with all values- Returns:
- all values
-
format
public static <T extends java.lang.Comparable<? super T>> java.lang.String format(java.util.Map<T,? extends java.util.Collection<?>> map)
-
vertical
static java.lang.String vertical(int padding, java.util.Collection<?> used)
-
pad
static java.lang.String pad(int i)
-
containsKey
public boolean containsKey(java.lang.Object key)
-
containsValue
public boolean containsValue(java.lang.Object value)
-
get
public java.util.List<V> get(java.lang.Object key)
-
remove
public java.util.List<V> remove(java.lang.Object key)
-
values
public java.util.Collection<java.util.List<V>> values()
-
getOrDefault
public java.util.List<V> getOrDefault(java.lang.Object key, java.util.List<V> defaultValue)
-
forEach
public void forEach(java.util.function.BiConsumer<? super K,? super java.util.List<V>> action)
-
replaceAll
public void replaceAll(java.util.function.BiFunction<? super K,? super java.util.List<V>,? extends java.util.List<V>> function)
-
remove
public boolean remove(java.lang.Object key, java.lang.Object value)
-
computeIfAbsent
public java.util.List<V> computeIfAbsent(K key, java.util.function.Function<? super K,? extends java.util.List<V>> mappingFunction)
-
computeIfPresent
public java.util.List<V> computeIfPresent(K key, java.util.function.BiFunction<? super K,? super java.util.List<V>,? extends java.util.List<V>> remappingFunction)
-
compute
public java.util.List<V> compute(K key, java.util.function.BiFunction<? super K,? super java.util.List<V>,? extends java.util.List<V>> remappingFunction)
-
merge
public java.util.List<V> merge(K key, java.util.List<V> value, java.util.function.BiFunction<? super java.util.List<V>,? super java.util.List<V>,? extends java.util.List<V>> remappingFunction)
-
hashCode
public int hashCode()
-
equals
public boolean equals(java.lang.Object obj)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-