Saturday, December 6, 2025
HomeLanguagesJavaAtomicReferenceArray compareAndSet() method in Java with Examples

AtomicReferenceArray compareAndSet() method in Java with Examples

The compareAndSet() method of a AtomicReferenceArray class is used to atomically sets the value of index i of AtomicReferenceArray to newValue, if the current value at index i of AtomicReferenceArray object is equal to the expectedValue.This method will return true if update is successful.

Syntax:

public final boolean
       compareAndSet(
           int i, E expectedValue, E newValue)

Parameters: This method accepts:

  • i which is an index of AtomicReferenceArray to perform the operation,
  • expectedValue which is the expected value and
  • newValue which is the new value to set.

Return value: This method returns true if successful and false return indicates that the actual value was not equal to the expected value.

Below programs illustrate the compareAndSet() method:

Program 1:




// Java program to demonstrate
// compareAndSet() method
  
import java.util.concurrent.atomic.*;
  
public class GFG {
    public static void main(String[] args)
    {
        // create an atomic reference object.
        AtomicReferenceArray<Integer> ref
            = new AtomicReferenceArray<Integer>(3);
  
        // set some value
        ref.set(0, 1234);
        ref.set(1, 4322);
  
        // apply compareAndSet()
        boolean op1
            = ref.compareAndSet(0, 5434, 8913);
        boolean op2
            = ref.compareAndSet(1, 3236, 6543);
  
        // print
        System.out.println("Operation at index 0: "
                           + op1);
        System.out.println("Operation at index 0: "
                           + op2);
    }
}


Output:

Operation at index 0: false
Operation at index 0: false

Program 2:




// Java program to demonstrate
// compareAndSet() method
  
import java.util.concurrent.atomic.*;
  
public class GFG {
    public static void main(String[] args)
    {
        // create an atomic reference object.
        AtomicReferenceArray<String> ref
            = new AtomicReferenceArray<String>(3);
  
        // set some value
        ref.set(0, "GFG");
        ref.set(1, "JS");
  
        // apply compareAndSet()
        boolean op1
            = ref.compareAndSet(
                0, "GFG",
                "GEEKS FOR GEEKS");
        boolean op2
            = ref.compareAndSet(
                1, "JS",
                "JAVA SCRIPT");
  
        // print
        System.out.println("Operation at index 0: "
                           + op1);
        System.out.println("New value at index 0: "
                           + ref.get(0));
        System.out.println("Operation at index 1: "
                           + op2);
        System.out.println("New value at index 1: "
                           + ref.get(1));
    }
}


Output:

Operation at index 0: true
New value at index 0: GEEKS FOR GEEKS
Operation at index 1: true
New value at index 1: JAVA SCRIPT

References: https://docs.oracle.com/javase/10/docs/api/java/util/concurrent/atomic/AtomicReferenceArray.html#compareAndSet(int, E, E)

RELATED ARTICLES

1 COMMENT

Most Popular

Dominic
32427 POSTS0 COMMENTS
Milvus
98 POSTS0 COMMENTS
Nango Kala
6802 POSTS0 COMMENTS
Nicole Veronica
11944 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12012 POSTS0 COMMENTS
Shaida Kate Naidoo
6932 POSTS0 COMMENTS
Ted Musemwa
7185 POSTS0 COMMENTS
Thapelo Manthata
6881 POSTS0 COMMENTS
Umr Jansen
6867 POSTS0 COMMENTS