Class MapMultimap<A,B>
- All Implemented Interfaces:
Multimap<A,
,B> Serializable
,Iterable<Map.Entry<A,
,B>> Collection<Map.Entry<A,
,B>> BiPredicate<A,
,B> Set<Map.Entry<A,
B>>
- Direct Known Subclasses:
HashMultimap
- See Also:
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Adds a pair to this multimap.final boolean
The method uses directly @link{#add(A,B)}.void
clear()
boolean
Whether this multimap contains a pair with the given components.boolean
domain()
Returns the set of left components of pairs in this multimap.Returns the set of right components of pairs with a given left component in this multimap.imageMap()
Returns a map which maps each A which appears as a left component to a set of all B which appear as its right component.iterator()
Returns the set of left components of pairs with a given right component in this multimap.Returns a map which maps each B which appears as a right component to a set of all A which appear as its left component.range()
Returns the set of right components of pairs in this multimap.boolean
Removes a pair from this this multimap.boolean
boolean
removeAllDomain
(Collection<? extends A> c) Removes all pairs with a left component in the given collection from this multimap.boolean
removeAllRange
(Collection<? extends B> c) Removes all pairs with a right component in the given collection from this multimap.boolean
removeDomain
(A a) Removes all pairs with a given left component from this multimap.boolean
removeRange
(B b) Removes all pairs with a given right component from this multimap.boolean
retainAllDomain
(Collection<? extends A> c) Removes all pairs with a left component which is not the given collection from this multimap.boolean
retainAllRange
(Collection<? extends B> c) Removes all pairs with a right component which is not the given collection from this multimap.int
size()
Methods inherited from class eu.bandm.tools.ops.AbstractMultimap
containsUnchecked, imageAll, imageAllUnchecked, preimageAll, preimageAllUnchecked, removeAllDomainUnchecked, removeAllRangeUnchecked, removeDomainUnchecked, removeRangeUnchecked, removeUnchecked, retainAllDomainUnchecked, retainAllRangeUnchecked, test
Methods inherited from class java.util.AbstractCollection
addAll, containsAll, isEmpty, removeAll, retainAll, toArray, toArray, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.function.BiPredicate
and, negate, or
Methods inherited from interface java.util.Collection
parallelStream, removeIf, stream, toArray
-
Field Details
-
forward
-
backward
-
size
protected int size
-
-
Constructor Details
-
MapMultimap
-
-
Method Details
-
createForwardSet
-
createBackwardSet
-
add
The method uses directly @link{#add(A,B)}. When a derived class applies checks on the arguments of the add method, these checks are also applied here. -
clear
public void clear() -
contains
-
remove
-
size
public int size() -
iterator
-
add
Description copied from interface:Multimap
Adds a pair to this multimap. This operation must be stable: adding a pair thatequals
any pair contained in this multimap componentwise must not change this multimap. -
remove
Description copied from interface:Multimap
Removes a pair from this this multimap. Removing a pair thatequals
no pair contained in this multimap componentwise must not change this multimap. -
removeDomain
Description copied from interface:Multimap
Removes all pairs with a given left component from this multimap. The effect of the implementation on this multimap must be equivalent to the following code:removeDomain(final A a) { for (B b : new HashSet<B>(range())) remove(a, b) ; }
- Specified by:
removeDomain
in interfaceMultimap<A,
B> - Overrides:
removeDomain
in classAbstractMultimap<A,
B> - Parameters:
a
- the left component of all pairs to remove.- Returns:
true
if this multimap has been changed by this operation,false
otherwise.
-
removeRange
Description copied from interface:Multimap
Removes all pairs with a given right component from this multimap. The effect of the implementation on this multimap must be equivalent to the following code:removeRange(final B b) { for (A a : new HashSet<A>(domain())) remove(a, b) ; }
- Specified by:
removeRange
in interfaceMultimap<A,
B> - Overrides:
removeRange
in classAbstractMultimap<A,
B> - Parameters:
b
- the right component of all pairs to remove.- Returns:
true
if this multimap has been changed by this operation,false
otherwise.
-
removeAllDomain
Description copied from interface:Multimap
Removes all pairs with a left component in the given collection from this multimap.- Specified by:
removeAllDomain
in interfaceMultimap<A,
B> - Overrides:
removeAllDomain
in classAbstractMultimap<A,
B>
-
retainAllDomain
Description copied from interface:Multimap
Removes all pairs with a left component which is not the given collection from this multimap.- Specified by:
retainAllDomain
in interfaceMultimap<A,
B> - Overrides:
retainAllDomain
in classAbstractMultimap<A,
B>
-
removeAllRange
Description copied from interface:Multimap
Removes all pairs with a right component in the given collection from this multimap.- Specified by:
removeAllRange
in interfaceMultimap<A,
B> - Overrides:
removeAllRange
in classAbstractMultimap<A,
B>
-
retainAllRange
Description copied from interface:Multimap
Removes all pairs with a right component which is not the given collection from this multimap.- Specified by:
retainAllRange
in interfaceMultimap<A,
B> - Overrides:
retainAllRange
in classAbstractMultimap<A,
B>
-
contains
Description copied from interface:Multimap
Whether this multimap contains a pair with the given components. -
domain
Description copied from interface:Multimap
Returns the set of left components of pairs in this multimap.The returned set is backed by this multimap, such that changes to this multimap are reflected by the set. The behavior of modifications of this multimap concurrent to iteration of the set is unspecified.
If this multimap supports the
removeDomain
operation, then the returned set and its iterators must support theremove
operation, and changes by these operations must be reflected by this multimap. -
range
Description copied from interface:Multimap
Returns the set of right components of pairs in this multimap.If this multimap supports the
removeRange
operation, then the returned set and its iterators must support theremove
operation. -
image
Description copied from interface:Multimap
Returns the set of right components of pairs with a given left component in this multimap.The returned set need not be modifiable. The behaviour of this multimap after successfully modifying the returned set is unspecified.
-
imageUnchecked
- Specified by:
imageUnchecked
in interfaceMultimap<A,
B> - Overrides:
imageUnchecked
in classAbstractMultimap<A,
B> - See Also:
-
imageMap
Description copied from interface:Multimap
Returns a map which maps each A which appears as a left component to a set of all B which appear as its right component. -
preimage
Description copied from interface:Multimap
Returns the set of left components of pairs with a given right component in this multimap.The returned set need not be modifiable. The behaviour of this multimap after successfully modifying the returned set is unspecified.
-
preimageUnchecked
- Specified by:
preimageUnchecked
in interfaceMultimap<A,
B> - Overrides:
preimageUnchecked
in classAbstractMultimap<A,
B> - See Also:
-
preimageMap
Description copied from interface:Multimap
Returns a map which maps each B which appears as a right component to a set of all A which appear as its left component.- Specified by:
preimageMap
in interfaceMultimap<A,
B> - Overrides:
preimageMap
in classAbstractMultimap<A,
B>
-