The Java.util.concurrent.atomic.AtomicLong.getAndSet() is an inbuilt method in java that sets the given value to the value passed in the parameter and returns the value before updation which is of data-type long.
Syntax:
public final long getAndSet(long val)
Parameters: The function accepts a single mandatory parameter val which specifies the value to be updated.
Return value: The function returns the value before update operation is performed to the previous value.
Below programs illustrate the above method:
Program 1:
// Java program that demonstrates // the getAndSet() function   import java.util.concurrent.atomic.AtomicLong;   public class GFG {     public static void main(String args[])     {           // Initially value as 0         AtomicLong val = new AtomicLong( 0 );           // Updates and sets         long res             = val.getAndSet( 10 );           System.out.println( "Previous value: "                            + res);           // Prints the updated value         System.out.println( "Current value: "                            + val);     } } |
Previous value: 0 Current value: 10
Program 2:
// Java program that demonstrates // the getAndSet() function   import java.util.concurrent.atomic.AtomicLong;   public class GFG {     public static void main(String args[])     {           // Initially value as 18         AtomicLong val = new AtomicLong( 18 );           // Gets and updates         long res = val.getAndSet( 12 );           System.out.println( "Previous value: "                            + res);         // Prints the updated value         System.out.println( "Current value: "                            + val);     } } |
Previous value: 18 Current value: 12
Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicLong.html#getAndSet–