|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object com.google.common.util.concurrent.AtomicLongMap<K>
@Beta @GwtCompatible 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 |