📅  最后修改于: 2023-12-03 14:42:44.142000             🧑  作者: Mango
在Java中,AtomicReferenceArray
类提供了一种原子性的数组操作方式。其中的compareAndExchange()
方法可以用于原子地比较并替换数组中的元素。本文将介绍AtomicReferenceArray compareAndExchange()
方法的用法,并提供示例代码。
compareAndExchange()
方法概述compareAndExchange()
方法是AtomicReferenceArray
类的一个原子操作方法,用于比较并替换数组中的指定位置的元素。它的方法签名如下:
public final boolean compareAndExchange(int i, E expectedValue, E newValue)
参数说明:
i
:要操作的数组位置expectedValue
:期望的旧值newValue
:要替换的新值返回值:如果旧值与期望的值相等,则将新值替换旧值并返回true
;否则不执行替换并返回false
。
下面是一个使用compareAndExchange()
方法的示例代码,展示了如何原子地比较并替换数组中的元素。
import java.util.concurrent.atomic.AtomicReferenceArray;
public class AtomicReferenceArrayExample {
public static void main(String[] args) {
AtomicReferenceArray<Integer> atomicArray = new AtomicReferenceArray<>(new Integer[]{1, 2, 3, 4, 5});
int index = 2;
int expectedValue = 3;
int newValue = 6;
boolean swapped = atomicArray.compareAndExchange(index, expectedValue, newValue);
System.out.println("Swapped: " + swapped);
System.out.println("Array after compareAndExchange: " + atomicArray);
}
}
在上述示例代码中,我们创建了一个包含整数的AtomicReferenceArray
对象。然后,我们选择想要替换的数组位置index
、期望的旧值expectedValue
和要替换的新值newValue
。最后,我们调用compareAndExchange()
方法进行比较并替换操作。
运行以上示例代码,可能的输出结果为:
Swapped: true
Array after compareAndExchange: [1, 2, 6, 4, 5]
输出结果表明,成功比较并替换了数组位置为2的元素,将其原本的值3替换为了新值6。
以上是关于Java中的AtomicReferenceArray compareAndExchange()方法及示例
的介绍,通过该方法,我们可以安全地进行数组元素的比较和替换操作,并确保线程安全。