|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.google.common.util.concurrent.AtomicLongMap<K>
@Beta public final class AtomicLongMap<K>
A map containing long values that can be atomically updated. While writes to a
traditional Map rely on put(K, V), the typical mechanism for writing to this map
is addAndGet(K, long), which adds a long to the value currently associated with
K. If a key has not yet been associated with a value, its implicit value is zero.
Most methods in this class treat absent values and zero values identically, as individually
documented. Exceptions to this are containsKey(java.lang.Object), size(), isEmpty(),
asMap, and toString().
Instances of this class may be used by multiple threads concurrently. All operations are atomic unless otherwise noted.
Note: If your values are always positive and less than 2^31, you may wish to use a
Multiset such as
ConcurrentHashMultiset instead.
Warning: Unlike Multiset, entries whose values are zero are not automatically
removed from the map. Instead they must be removed manually with removeAllZeros().
| Method Summary | ||
|---|---|---|
long |
addAndGet(K key,
long delta)
Adds delta to the value currently associated with key, and returns the new
value. |
|
Map<K,Long> |
asMap()
Returns a live, read-only view of the map backing this AtomicLongMap. |
|
void |
clear()
Removes all of the mappings from this map. |
|
boolean |
containsKey(Object key)
Returns true if this map contains a mapping for the specified key. |
|
static
|
create()
Creates an AtomicLongMap. |
|
static
|
create(Map<? extends K,? extends Long> m)
Creates an AtomicLongMap with the same mappings as the specified Map. |
|
long |
decrementAndGet(K key)
Decrements by one the value currently associated with key, and returns the new value. |
|
long |
get(K key)
Returns the value associated with key, or zero if there is no value associated with
key. |
|
long |
getAndAdd(K key,
long delta)
Adds delta to the value currently associated with key, and returns the old
value. |
|
long |
getAndDecrement(K key)
Decrements by one the value currently associated with key, and returns the old value. |
|
long |
getAndIncrement(K key)
Increments by one the value currently associated with key, and returns the old value. |
|
long |
incrementAndGet(K key)
Increments by one the value currently associated with key, and returns the new value. |
|
boolean |
isEmpty()
Returns true if this map contains no key-value mappings. |
|
long |
put(K key,
long newValue)
Associates newValue with key in this map, and returns the value previously
associated with key, or zero if there was no such value. |
|
void |
putAll(Map<? extends K,? extends Long> m)
Copies all of the mappings from the specified map to this map. |
|
long |
remove(K key)
Removes and returns the value associated with key. |
|
void |
removeAllZeros()
Removes all mappings from this map whose values are zero. |
|
int |
size()
Returns the number of key-value mappings in this map. |
|
long |
sum()
Returns the sum of all values in this map. |
|
String |
toString()
|
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Method Detail |
|---|
public static <K> AtomicLongMap<K> create()
AtomicLongMap.
public static <K> AtomicLongMap<K> create(Map<? extends K,? extends Long> m)
AtomicLongMap with the same mappings as the specified Map.
public long get(K key)
key, or zero if there is no value associated with
key.
public long incrementAndGet(K key)
key, and returns the new value.
public long decrementAndGet(K key)
key, and returns the new value.
public long addAndGet(K key,
long delta)
delta to the value currently associated with key, and returns the new
value.
public long getAndIncrement(K key)
key, and returns the old value.
public long getAndDecrement(K key)
key, and returns the old value.
public long getAndAdd(K key,
long delta)
delta to the value currently associated with key, and returns the old
value.
public long put(K key,
long newValue)
newValue with key in this map, and returns the value previously
associated with key, or zero if there was no such value.
public void putAll(Map<? extends K,? extends Long> m)
put(k, v) on this map once for each mapping from key
k to value v in the specified map. The behavior of this operation is undefined
if the specified map is modified while the operation is in progress.
public long remove(K key)
key. If key is not
in the map, this method has no effect and returns zero.
public void removeAllZeros()
This method is not atomic: the map may be visible in intermediate states, where some of the zero values have been removed and others have not.
public long sum()
This method is not atomic: the sum may or may not include other concurrent operations.
public Map<K,Long> asMap()
AtomicLongMap.
public boolean containsKey(Object key)
public int size()
Integer.MAX_VALUE elements, returns Integer.MAX_VALUE.
public boolean isEmpty()
true if this map contains no key-value mappings.
public void clear()
This method is not atomic: the map may not be empty after returning if there were concurrent writes.
public String toString()
toString in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||