AtomicIntegerArray updateAndGet() method in Java with Examples
Last Updated :
27 Feb, 2019
The Java.util.concurrent.atomic.AtomicIntegerArray.updateAndGet() is an inbuilt method in Java that updates the value at any given index of the AtomicIntegerArray after applying a given update function on the value at that index. The method takes the index value of the AtomicIntegerArray and the update function as the parameters and updates the value at that index by applying the update function on that value. The function should be side-effect-free, since it may be re-applied when attempted updates fail due to contention among threads.
Syntax:
public final int updateAndGet(int i, IntegerUnaryOperator updateFunction)
Parameters: The function accepts two parameters:
- i: which is the index where update is to be made.
- updateFunction: which is the update function of single argument that tells what update is to be made.
Return value: The function returns a int value which is the value after applying the specified update function.
Below programs illustrate the above method:
Program 1:
import java.util.concurrent.atomic.AtomicIntegerArray;
import java.util.function.IntUnaryOperator;
public class GFG {
public static void main(String args[])
{
int a[] = { 1 , 2 , 3 , 4 , 5 };
AtomicIntegerArray arr = new AtomicIntegerArray(a);
System.out.println( "The array : " + arr);
int idx = 4 ;
IntUnaryOperator squaredFunction = (l) -> l * l;
arr.updateAndGet(idx, squaredFunction);
System.out.println( "The array after update : "
+ arr);
}
}
|
Output:
The array : [1, 2, 3, 4, 5]
The array after update : [1, 2, 3, 4, 25]
Program 2:
import java.util.concurrent.atomic.AtomicIntegerArray;
import java.util.function.IntUnaryOperator;
public class GFG {
public static void main(String args[])
{
int a[] = { 1 , 2 , 3 , 4 , 5 };
AtomicIntegerArray arr = new AtomicIntegerArray(a);
System.out.println( "The array : " + arr);
int idx = 3 ;
IntUnaryOperator cubeFunction = (l) -> l * l * l;
arr.updateAndGet(idx, cubeFunction);
System.out.println( "The array after update : "
+ arr);
}
}
|
Output:
The array : [1, 2, 3, 4, 5]
The array after update : [1, 2, 3, 64, 5]
Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicIntegerArray.html#updateAndGet-int-java.util.function.IntUnaryOperator-
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...