K
- the key typeV
- the value typepublic final class LinkedListMultimap<K,V> extends Object implements ListMultimap<K,V>
Multimap
implementation that uses an LinkedList
to store the values associated with a key. This
implementation allows duplicate values for a key, maintains the insertion-order of the values for each key
, and maintains the insertion order of all key-value pairs
.Modifier and Type | Class and Description |
---|---|
protected static class |
LinkedListMultimap.Entry<K,V> |
protected class |
LinkedListMultimap.EntryIterator |
protected class |
LinkedListMultimap.KeyIterator |
protected class |
LinkedListMultimap.MapEntries |
protected class |
LinkedListMultimap.MapView |
protected class |
LinkedListMultimap.ValueIterator |
Modifier and Type | Field and Description |
---|---|
protected LinkedListMultimap.Entry<K,V> |
firstEntry |
protected Map<K,LinkedListMultimap.Entry<K,V>> |
firstEntryWithKey |
protected LinkedListMultimap.Entry<K,V> |
lastEntry |
protected Map<K,LinkedListMultimap.Entry<K,V>> |
lastEntryWithKey |
protected int |
length |
protected Map<K,AtomicInteger> |
numberOfEntriesForKey |
Modifier | Constructor and Description |
---|---|
protected |
LinkedListMultimap() |
Modifier and Type | Method and Description |
---|---|
protected LinkedListMultimap.Entry<K,V> |
addEntryFor(K key,
V value) |
Map<K,Collection<V>> |
asMap()
Return a map view that associates each key with the corresponding values in the multimap.
|
void |
clear()
Remove all key-value pairs from this multimap.
|
boolean |
containsEntry(Object key,
Object value)
Determine whether this multimap contains the supplied key-value pair.
|
boolean |
containsKey(K key)
Determine whether this multimap associates any values with the supplied key.
|
boolean |
containsValue(Object value)
Determine whether this multimap associates at least one key with the supplied value.
|
static <K,V> LinkedListMultimap<K,V> |
create()
Creates a new, empty
LinkedListMultimap with the default initial capacity. |
protected int |
currentCountFor(K key) |
protected int |
decrementEntryCountFor(K key) |
Collection<Map.Entry<K,V>> |
entries()
Return a collection of all key-value pairs.
|
boolean |
equals(Object obj) |
List<V> |
get(K key)
Get the collection of values that are associated with the supplied key.
|
int |
hashCode() |
protected int |
incrementEntryCountFor(K key) |
protected LinkedListMultimap.Entry<K,V> |
insertEntryBefore(K key,
V value,
LinkedListMultimap.Entry<K,V> nextEntryWithKey) |
boolean |
isEmpty() |
protected void |
isValid(LinkedListMultimap.Entry<K,V> entry) |
Set<K> |
keySet()
Return the set of keys in this multimap.
|
boolean |
put(K key,
V value)
Associate the supplied value with the given key, returning true if the size of this multimap was increased.
|
boolean |
remove(K key,
V value)
Remove the supplied key-value pair from this multi-map.
|
Collection<V> |
removeAll(K key)
Remove all of the key-value pairs that use the supplied key, returning the collection of values.
|
protected void |
removeEntry(LinkedListMultimap.Entry<K,V> entry) |
int |
size()
Return the number of key-value pairs in this multimap.
|
String |
toString() |
Collection<V> |
values()
Return a collection of all values in this multimap.
|
protected LinkedListMultimap.Entry<K,V> firstEntry
protected LinkedListMultimap.Entry<K,V> lastEntry
protected int length
protected final Map<K,AtomicInteger> numberOfEntriesForKey
protected final Map<K,LinkedListMultimap.Entry<K,V>> firstEntryWithKey
protected final Map<K,LinkedListMultimap.Entry<K,V>> lastEntryWithKey
public static <K,V> LinkedListMultimap<K,V> create()
LinkedListMultimap
with the default initial capacity.K
- the key typeV
- the value typepublic void clear()
Multimap
public int size()
Multimap
public boolean containsKey(K key)
Multimap
containsKey
in interface Multimap<K,V>
key
- the keytrue
if there is at least one value associated with the supplied key, or false
otherwisepublic boolean containsEntry(Object key, Object value)
Multimap
containsEntry
in interface Multimap<K,V>
key
- the keyvalue
- the valuetrue
if this multimap contains an entry with the supplied key and value, or false
otherwisepublic boolean containsValue(Object value)
Multimap
containsValue
in interface Multimap<K,V>
value
- the valuetrue
if there is at least one key associated with the supplied value, or false
otherwisepublic List<V> get(K key)
ListMultimap
Changes to the returned collection will update the values that this multimap associates with the key.
public boolean put(K key, V value)
Multimap
Some implementations allow duplicate key-value pairs, and in these cases this method will always increase the size of the multimap and will thus always return true. Other implementations will not allow duplicate key-value pairs, and may return false if the multimap already contains the supplied key-value pair.
public boolean remove(K key, V value)
Multimap
public Collection<V> removeAll(K key)
Multimap
public Collection<Map.Entry<K,V>> entries()
Multimap
add
or addAll
operations.public Set<K> keySet()
Multimap
public Collection<V> values()
Multimap
public Map<K,Collection<V>> asMap()
Multimap
setValue()
on its entries,
put
, or putAll
.
The collections returned by asMap().get(Object)
have the same behavior as those returned by Multimap.get(K)
.
protected int incrementEntryCountFor(K key)
protected int decrementEntryCountFor(K key)
protected int currentCountFor(K key)
protected LinkedListMultimap.Entry<K,V> addEntryFor(K key, V value)
protected LinkedListMultimap.Entry<K,V> insertEntryBefore(K key, V value, LinkedListMultimap.Entry<K,V> nextEntryWithKey)
protected void removeEntry(LinkedListMultimap.Entry<K,V> entry)
protected void isValid(LinkedListMultimap.Entry<K,V> entry)
Copyright © 2008–2016 JBoss, a division of Red Hat. All rights reserved.