Friday, April 3, 2026
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
32512 POSTS0 COMMENTS
Milvus
131 POSTS0 COMMENTS
Nango Kala
6885 POSTS0 COMMENTS
Nicole Veronica
12006 POSTS0 COMMENTS
Nokonwaba Nkukhwana
12100 POSTS0 COMMENTS
Shaida Kate Naidoo
7015 POSTS0 COMMENTS
Ted Musemwa
7259 POSTS0 COMMENTS
Thapelo Manthata
6971 POSTS0 COMMENTS
Umr Jansen
6960 POSTS0 COMMENTS