Wednesday, June 10, 2026
HomeLanguagesJavaAtomicReference getAndUpdate() method in Java with Examples

AtomicReference getAndUpdate() method in Java with Examples

The getAndUpdate() method of a AtomicReference class is used to atomically updates which updates the current value of the AtomicReference by applying the specified updateFunction operation on the current value. It takes an object of updateFunction interface as its parameter and applies the operation specified in the object to the current value. It returns the previous value.
Syntax: 
 

public final V getAndUpdate(UnaryOperator<V> updateFunction)

Parameters: This method accepts updateFunction which is a side-effect-free function.
Return value: This method returns the previous value.
Below programs illustrate the getAndUpdate() method: 
Program 1: 
 

Java




// Java program to demonstrate
// AtomicReference.getAndUpdate() method
 
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.UnaryOperator;
 
public class GFG {
    public static void main(String args[])
    {
 
        // AtomicReference with value
        AtomicReference<Integer> ref
            = new AtomicReference<>(987654);
 
        // Declaring the updateFunction
        // applying function
        UnaryOperator twoDigits
            = (v)
            -> v.toString()
                   .substring(0, 2);
 
        // apply getAndUpdate()
        int value = ref.getAndUpdate(twoDigits);
 
        // print AtomicReference
        System.out.println(
            "The AtomicReference previous value: "
            + value);
        System.out.println(
            "The AtomicReference new value: "
            + ref.get());
    }
}


Output: 

 

Program 2: 
 

Java




// Java program to demonstrate
// AtomicReference.getAndUpdate() method
 
import java.util.concurrent.atomic.*;
import java.util.function.UnaryOperator;
 
public class GFG {
    public static void main(String args[])
    {
 
        // AtomicReference with value
        AtomicReference<String> ref
            = new AtomicReference<>("welcome");
 
        // Declaring the updateFunction
        // applying function
        UnaryOperator twoDigits
            = (v) -> v + " to gfg";
 
        // apply getAndUpdate()
        String value
            = ref.getAndUpdate(twoDigits);
 
        // print AtomicReference
        System.out.println(
            "The AtomicReference previous value: "
            + value);
        System.out.println(
            "The AtomicReference new value: "
            + ref.get());
    }
}


Output: 

 

References: https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/atomic/AtomicReference.html#getAndUpdate(java.util.function.UnaryOperator)
 

RELATED ARTICLES

2 COMMENTS

Most Popular

Dominic
32515 POSTS0 COMMENTS
Milvus
131 POSTS0 COMMENTS
Nango Kala
6896 POSTS0 COMMENTS
Nicole Veronica
12012 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12109 POSTS0 COMMENTS
Shaida Kate Naidoo
7019 POSTS0 COMMENTS
Ted Musemwa
7262 POSTS0 COMMENTS
Thapelo Manthata
6976 POSTS0 COMMENTS
Umr Jansen
6963 POSTS0 COMMENTS