Most visited

Recently visited

Added in API level 1

AtomicReferenceArray

public class AtomicReferenceArray
extends Object implements Serializable

java.lang.Object
   ↳ java.util.concurrent.atomic.AtomicReferenceArray<E>


An array of object references in which elements may be updated atomically. See the java.util.concurrent.atomic package specification for description of the properties of atomic variables.

Summary

Public constructors

AtomicReferenceArray(int length)

Creates a new AtomicReferenceArray of the given length, with all elements initially null.

AtomicReferenceArray(E[] array)

Creates a new AtomicReferenceArray with the same length as, and all elements copied from, the given array.

Public methods

final E accumulateAndGet(int i, E x, BinaryOperator<E> accumulatorFunction)

Atomically updates the element at index i with the results of applying the given function to the current and given values, returning the updated value.

final boolean compareAndSet(int i, E expect, E update)

Atomically sets the element at position i to the given updated value if the current value == the expected value.

final E get(int i)

Gets the current value at position i.

final E getAndAccumulate(int i, E x, BinaryOperator<E> accumulatorFunction)

Atomically updates the element at index i with the results of applying the given function to the current and given values, returning the previous value.

final E getAndSet(int i, E newValue)

Atomically sets the element at position i to the given value and returns the old value.

final E getAndUpdate(int i, UnaryOperator<E> updateFunction)

Atomically updates the element at index i with the results of applying the given function, returning the previous value.

final void lazySet(int i, E newValue)

Eventually sets the element at position i to the given value.

final int length()

Returns the length of the array.

final void set(int i, E newValue)

Sets the element at position i to the given value.

String toString()

Returns the String representation of the current values of array.

final E updateAndGet(int i, UnaryOperator<E> updateFunction)

Atomically updates the element at index i with the results of applying the given function, returning the updated value.

final boolean weakCompareAndSet(int i, E expect, E update)

Atomically sets the element at position i to the given updated value if the current value == the expected value.

Inherited methods

From class java.lang.Object

Public constructors

AtomicReferenceArray

Added in API level 1
AtomicReferenceArray (int length)

Creates a new AtomicReferenceArray of the given length, with all elements initially null.

Parameters
length int: the length of the array

AtomicReferenceArray

Added in API level 1
AtomicReferenceArray (E[] array)

Creates a new AtomicReferenceArray with the same length as, and all elements copied from, the given array.

Parameters
array E: the array to copy elements from
Throws
NullPointerException if array is null

Public methods

accumulateAndGet

Added in API level 24
E accumulateAndGet (int i, 
                E x, 
                BinaryOperator<E> accumulatorFunction)

Atomically updates the element at index i with the results of applying the given function to the current and given values, returning the updated value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads. The function is applied with the current value at index i as its first argument, and the given update as the second argument.

Parameters
i int: the index
x E: the update value
accumulatorFunction BinaryOperator: a side-effect-free function of two arguments
Returns
E the updated value

compareAndSet

Added in API level 1
boolean compareAndSet (int i, 
                E expect, 
                E update)

Atomically sets the element at position i to the given updated value if the current value == the expected value.

Parameters
i int: the index
expect E: the expected value
update E: the new value
Returns
boolean true if successful. False return indicates that the actual value was not equal to the expected value.

get

Added in API level 1
E get (int i)

Gets the current value at position i.

Parameters
i int: the index
Returns
E the current value

getAndAccumulate

Added in API level 24
E getAndAccumulate (int i, 
                E x, 
                BinaryOperator<E> accumulatorFunction)

Atomically updates the element at index i with the results of applying the given function to the current and given values, returning the previous value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads. The function is applied with the current value at index i as its first argument, and the given update as the second argument.

Parameters
i int: the index
x E: the update value
accumulatorFunction BinaryOperator: a side-effect-free function of two arguments
Returns
E the previous value

getAndSet

Added in API level 1
E getAndSet (int i, 
                E newValue)

Atomically sets the element at position i to the given value and returns the old value.

Parameters
i int: the index
newValue E: the new value
Returns
E the previous value

getAndUpdate

Added in API level 24
E getAndUpdate (int i, 
                UnaryOperator<E> updateFunction)

Atomically updates the element at index i with the results of applying the given function, returning the previous value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads.

Parameters
i int: the index
updateFunction UnaryOperator: a side-effect-free function
Returns
E the previous value

lazySet

Added in API level 9
void lazySet (int i, 
                E newValue)

Eventually sets the element at position i to the given value.

Parameters
i int: the index
newValue E: the new value

length

Added in API level 1
int length ()

Returns the length of the array.

Returns
int the length of the array

set

Added in API level 1
void set (int i, 
                E newValue)

Sets the element at position i to the given value.

Parameters
i int: the index
newValue E: the new value

toString

Added in API level 1
String toString ()

Returns the String representation of the current values of array.

Returns
String the String representation of the current values of array

updateAndGet

Added in API level 24
E updateAndGet (int i, 
                UnaryOperator<E> updateFunction)

Atomically updates the element at index i with the results of applying the given function, returning the updated value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads.

Parameters
i int: the index
updateFunction UnaryOperator: a side-effect-free function
Returns
E the updated value

weakCompareAndSet

Added in API level 1
boolean weakCompareAndSet (int i, 
                E expect, 
                E update)

Atomically sets the element at position i to the given updated value if the current value == the expected value.

May fail spuriously and does not provide ordering guarantees, so is only rarely an appropriate alternative to compareAndSet.

Parameters
i int: the index
expect E: the expected value
update E: the new value
Returns
boolean true if successful

Hooray!