java.util.concurrent.atomic

## Class AtomicIntegerArray

- java.lang.Object
- - java.util.concurrent.atomic.AtomicIntegerArray

All Implemented Interfaces:
  Serializable

    public class AtomicIntegerArray
    extends Object
    implements Serializable

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

Since:
  1.5
See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`AtomicIntegerArray(int length)` Creates a new AtomicIntegerArray of given length.
`AtomicIntegerArray(int[] array)` Creates a new AtomicIntegerArray with the same length as, and all elements copied from, the given array.

### Method Summary

Methods
`int` `addAndGet(int i, int delta)` Atomically adds the given value to the element at index `i`.
`boolean` `compareAndSet(int i, int expect, int update)` Atomically sets the element at position `i` to the given updated value if the current value `==` the expected value.
`int` `decrementAndGet(int i)` Atomically decrements by one the element at index `i`.
`int` `get(int i)` Gets the current value at position `i`.
`int` `getAndAdd(int i, int delta)` Atomically adds the given value to the element at index `i`.
`int` `getAndDecrement(int i)` Atomically decrements by one the element at index `i`.
`int` `getAndIncrement(int i)` Atomically increments by one the element at index `i`.
`int` `getAndSet(int i, int newValue)` Atomically sets the element at position `i` to the given value and returns the old value.
`int` `incrementAndGet(int i)` Atomically increments by one the element at index `i`.
`void` `lazySet(int i, int newValue)` Eventually sets the element at position `i` to the given value.
`int` `length()` Returns the length of the array.
`void` `set(int i, int newValue)` Sets the element at position `i` to the given value.
`String` `toString()` Returns the String representation of the current values of array.
`boolean` `weakCompareAndSet(int i, int expect, int update)` Atomically sets the element at position `i` to the given updated value if the current value `==` the expected value.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### AtomicIntegerArray

    public AtomicIntegerArray(int length)

Creates a new AtomicIntegerArray of given length.

Parameters:
  `length` - the length of the array

#### AtomicIntegerArray

    public AtomicIntegerArray(int[] array)

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

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

### Method Detail

#### length

    public final int length()

Returns the length of the array.

Returns:
  the length of the array

#### get

    public final int get(int i)

Gets the current value at position `i`.

Parameters:
  `i` - the index
Returns:
  the current value

#### set

    public final void set(int i,
           int newValue)

Sets the element at position `i` to the given value.

Parameters:
  `i` - the index
  `newValue` - the new value

#### lazySet

    public final void lazySet(int i,
               int newValue)

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

Parameters:
  `i` - the index
  `newValue` - the new value
Since:
  1.6

#### getAndSet

    public final int getAndSet(int i,
                int newValue)

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

Parameters:
  `i` - the index
  `newValue` - the new value
Returns:
  the previous value

#### compareAndSet

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

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

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

#### weakCompareAndSet

    public final boolean weakCompareAndSet(int i,
                            int expect,
                            int 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` - the index
  `expect` - the expected value
  `update` - the new value
Returns:
  true if successful.

#### getAndIncrement

    public final int getAndIncrement(int i)

Atomically increments by one the element at index `i`.

Parameters:
  `i` - the index
Returns:
  the previous value

#### getAndDecrement

    public final int getAndDecrement(int i)

Atomically decrements by one the element at index `i`.

Parameters:
  `i` - the index
Returns:
  the previous value

#### getAndAdd

    public final int getAndAdd(int i,
                int delta)

Atomically adds the given value to the element at index `i`.

Parameters:
  `i` - the index
  `delta` - the value to add
Returns:
  the previous value

#### incrementAndGet

    public final int incrementAndGet(int i)

Atomically increments by one the element at index `i`.

Parameters:
  `i` - the index
Returns:
  the updated value

#### decrementAndGet

    public final int decrementAndGet(int i)

Atomically decrements by one the element at index `i`.

Parameters:
  `i` - the index
Returns:
  the updated value

#### addAndGet

    public final int addAndGet(int i,
                int delta)

Atomically adds the given value to the element at index `i`.

Parameters:
  `i` - the index
  `delta` - the value to add
Returns:
  the updated value

#### toString

    public String toString()

Returns the String representation of the current values of array.

Overrides:
  `toString` in class `Object`
Returns:
  the String representation of the current values of array.

Copyright © 1993, 2017, Oracle and/or its affiliates. All rights reserved.