|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--harpoon.Util.Collections.GenericMultiMap
GenericMultiMap
is a default implementation of a
MultiMap
.
FSK: right now the implementation tries to preserve the property that if a key 'k' maps to an empty collection 'c' in some MultiMap 'mm', then users of 'mm' will not be able to see that 'k' is a member of the keySet for 'mm'. However, it does not preserve this property when mm.getValues(k) is used as a means to operate on the state of 'mm', and it is not clear to me whether one can even ensure that the property can be maintained if arbitrary operations on mm.getValues(k) are passed on to 'mm'.
Nested Class Summary |
Nested classes inherited from class harpoon.Util.Collections.MultiMap |
MultiMap.Factory |
Nested classes inherited from class java.util.Map |
Map.Entry |
Constructor Summary | |
GenericMultiMap()
Creates a MultiMap using a HashMap for
the map and HashSet s for the value collections. |
|
GenericMultiMap(CollectionFactory cf)
Creates a MultiMap using a HashMap for
the map and the specified CollectionFactory to
create the value collections. |
|
GenericMultiMap(Map m)
Makes a new MultiMap initialized with all of the
Map.Entry s in m . |
|
GenericMultiMap(MapFactory mf,
CollectionFactory cf)
Creates a MultiMap using the specified
MapFactory to create the map and the specified
CollectionFactory to create the value collections. |
Method Summary | |
boolean |
add(Object key,
Object value)
Ensures that this contains an association from
key to value . |
boolean |
addAll(MultiMap mm)
Add all mappings in the given multimap to this multimap. |
boolean |
addAll(Object key,
Collection values)
Adds to the current mappings: associations for key to each value in values . |
void |
clear()
|
boolean |
contains(Object a,
Object b)
Returns true if a has a mapping to b
in this . |
boolean |
containsKey(Object key)
|
boolean |
containsValue(Object value)
|
Set |
entrySet()
Returns a set view of the mappings contained in this map. |
boolean |
equals(Object o)
|
Object |
get(Object key)
Returns some arbitrary value from the set of values to which this map maps the specified key. |
Collection |
getValues(Object key)
Returns the collection of Values associated with key . |
int |
hashCode()
|
boolean |
isEmpty()
|
Set |
keySet()
Returns a set view of the keys in this map. |
Object |
put(Object key,
Object value)
Associates the specified value with the specified key in this map. |
void |
putAll(Map t)
Copies the mappings from the specified map to this map. |
Object |
remove(Object key)
Removes all mappings for this key from this map if present. |
boolean |
remove(Object key,
Object value)
Removes a mapping from key to value from this map if present. |
boolean |
removeAll(Object key,
Collection values)
Removes from the current mappings: associations for key to any value in values . |
boolean |
retainAll(Object key,
Collection values)
Removes from the current mappings: associations for key to any value not in values . |
int |
size()
Returns the number of key-value mappings in this map (keys which map to multiple values count multiple times). |
String |
toString()
|
Collection |
values()
Returns a collection view of the values contained in this map. |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
public GenericMultiMap()
MultiMap
using a HashMap
for
the map and HashSet
s for the value collections.
To gain more control over the specific sets/map used in
internal representation of this
, use the more
specific constructor
that takes CollectionFactory
s.
public GenericMultiMap(CollectionFactory cf)
MultiMap
using a HashMap
for
the map and the specified CollectionFactory
to
create the value collections.
public GenericMultiMap(MapFactory mf, CollectionFactory cf)
MultiMap
using the specified
MapFactory
to create the map and the specified
CollectionFactory
to create the value collections.
public GenericMultiMap(Map m)
MultiMap
initialized with all of the
Map.Entry
s in m
.
Method Detail |
public int size()
MultiMap
size
in interface MultiMap
public boolean isEmpty()
isEmpty
in interface Map
public boolean containsKey(Object key)
containsKey
in interface Map
public boolean containsValue(Object value)
containsValue
in interface Map
public Object get(Object key)
null
if
the map contains no mapping for the key; it's also possible
that the map explicitly maps the key to null
.
The containsKey
operation may be used to
distinquish these two cases.
Note that if only the put
method is used to
modify this
, then get
will operate
just as it would in any other Map
.
get
in interface MultiMap
public Object put(Object key, Object value)
null
if no values were associated previously.
put
in interface MultiMap
public Object remove(Object key)
null
if there was no mapping for key.
remove
in interface MultiMap
null
if Map
associated
no values with the key. Note that a zero-sized collection
is not returned in the latter case, and that a
null
return value may be ambiguous if the map
associated null
with the given key (in addition
to possibly other values).public boolean remove(Object key, Object value)
this
was modified as a result of
this operation, else returns false.
remove
in interface MultiMap
public void putAll(Map t)
putAll(mm)
where mm
is a
MultiMap
will NOT add all of the mappings in
mm
; it will only add all of the Keys in
mm
, mapping each Key to one of the Values it
mapped to in mm
. To add all of the mappings from
another MultiMap
, use
addAll(MultiMap)
.
putAll
in interface MultiMap
public void clear()
clear
in interface Map
public boolean equals(Object o)
equals
in interface Map
equals
in class Object
public int hashCode()
hashCode
in interface Map
hashCode
in class Object
public boolean add(Object key, Object value)
this
contains an association from
key
to value
.
(MultiMap
specific operation).
add
in interface MultiMap
true
if this mapping changed as a result of
the callpublic boolean addAll(Object key, Collection values)
key
to each value in values
.
(MultiMap
specific operation).
addAll
in interface MultiMap
true
if this mapping changed as a result
of the callpublic boolean addAll(MultiMap mm)
addAll
in interface MultiMap
public boolean retainAll(Object key, Collection values)
key
to any value not in values
.
(MultiMap
specific operation).
retainAll
in interface MultiMap
true
if this mapping changed as a result
of the callpublic boolean removeAll(Object key, Collection values)
key
to any value in values
.
(MultiMap
specific operation).
removeAll
in interface MultiMap
true
if this mapping changed as a result
of the callpublic Collection getValues(Object key)
key
. Modifications to the returned
Collection
affect this
as well. If
there are no Values currently associated with
key
, constructs a new, mutable, empty
Collection
and returns it.
(MultiMap
specific operation).
getValues
in interface MultiMap
public boolean contains(Object a, Object b)
a
has a mapping to b
in this
.
(MultiMap
specific operation).
contains
in interface MultiMap
public String toString()
toString
in class Object
public Set keySet()
keySet
in interface Map
public Collection values()
values
in interface Map
public Set entrySet()
Map.Entry
s. The returned set is actually a
MultiMapSet
, from which you can get back the
original MultiMap
.
entrySet
in interface Map
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |