AtomicReferenceArray getAndSet() method in Java with Examples
Last Updated :
17 Sep, 2021
The getAndSet() method of a AtomicReferenceArray class is used to atomically sets the value of index i of AtomicReferenceArray object to newValue which is passed as parameter and returns the old value of the AtomicReferenceArray object, with memory effects as specified by VarHandle.getAndSet(java.lang.Object…).VarHandle.getAndSet(java.lang.Object…) specified that variable is handle as memory semantics of setting as if the variable was declared volatile.
Syntax:
public final E getAndSet(int i, E newValue)
Parameters: This method accepts:
- i which is an index of AtomicReferenceArray to perform the operation,
- newValue which is the new value to set.
Return value: This method returns the old value of index i.
Below programs illustrate the getAndSet() method:
Program 1:
Java
import java.util.concurrent.atomic.*;
public class GFG {
public static void main(String[] args)
{
AtomicReferenceArray<Integer> ref
= new AtomicReferenceArray<Integer>( 3 );
ref.set( 0 , 1234 );
ref.set( 1 , 4322 );
int oldV1 = ref.getAndSet( 0 , 8913 );
int oldV2 = ref.getAndSet( 1 , 6543 );
System.out.println( "Old value at index 0: "
+ oldV1);
System.out.println( "New value at index 0: "
+ ref.get( 0 ));
System.out.println( "Old value at index 1: "
+ oldV2);
System.out.println( "New value at index 1: "
+ ref.get( 1 ));
}
}
|
Output:
Old value at index 0: 1234
New value at index 0: 8913
Old value at index 1: 4322
New value at index 1: 6543
Program 2:
Java
import java.util.concurrent.atomic.*;
public class GFG {
public static void main(String[] args)
{
AtomicReferenceArray<String> ref
= new AtomicReferenceArray<String>( 3 );
ref.set( 0 , "GFG" );
ref.set( 1 , "JS" );
String oldV1
= ref.getAndSet( 0 , "GEEKS FOR GEEKS" );
String oldV2
= ref.getAndSet( 1 , "JAVA SCRIPT" );
System.out.println(
"Old value at index 0: "
+ oldV1);
System.out.println(
"New value at index 0: "
+ ref.get( 0 ));
System.out.println(
"Old value at index 1: "
+ oldV2);
System.out.println(
"New value at index 1: "
+ ref.get( 1 ));
}
}
|
Output:
Old value at index 0: GFG
New value at index 0: GEEKS FOR GEEKS
Old value at index 1: JS
New value at index 1: JAVA SCRIPT
References: https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/atomic/AtomicReferenceArray.html#getAndSet(int, E)
Like Article
Suggest improvement
Share your thoughts in the comments
Please Login to comment...