📌  相关文章
📜  Java中的 AtomicIntegerArray getAndIncrement() 方法及示例(1)

📅  最后修改于: 2023-12-03 14:42:43.896000             🧑  作者: Mango

Java中的 AtomicIntegerArray getAndIncrement() 方法及示例

在Java中,AtomicIntegerArray是一个原子类,它提供了一组针对整数数组的原子操作。其中之一是 getAndIncrement() 方法,该方法返回数组中指定位置的旧值,并将该位置的新值设置为旧值加1。

方法签名
public final int getAndIncrement(int i)
参数说明
  • i: 要增加的数组位置
返回值

返回数组中指定位置的旧值。

示例
import java.util.concurrent.atomic.AtomicIntegerArray;

public class AtomicIntegerArrayExample {
    public static void main(String[] args) {
        int[] arr = new int[]{0, 1, 2, 3, 4};
        AtomicIntegerArray atomicArr = new AtomicIntegerArray(arr);

        System.out.println("原数组: " + arr);
        System.out.println("原子数组: " + atomicArr);

        int index = 2;
        int oldValue = atomicArr.getAndIncrement(index);

        System.out.println("数组位置 " + index + " 的旧值为: " + oldValue);
        System.out.println("数组位置 " + index + " 的新值为: " + atomicArr.get(index));
    }
}

输出结果:

原数组: [I@28d93b30
原子数组: [0, 1, 2, 3, 4]
数组位置 2 的旧值为: 2
数组位置 2 的新值为: 3

在上面的示例中,我们首先创建了一个整数数组 arr ,它包含了五个元素。然后,我们创建了一个 AtomicIntegerArray 对象 atomicArr,它初始化为 arr

接下来,我们在数组位置 2 调用 getAndIncrement() 方法,它返回了位置 2 的旧值 2,并且将位置 2 的新值设置为 3。最后,我们输出了位置 2 的旧值和新值,验证了该方法的行为。

总结

AtomicIntegerArray 提供了一组原子操作,可以确保操作的完整执行。getAndIncrement() 方法能够原子地获取指定位置的值并将该位置的值加1。使用原子类的操作能够避免线程安全的问题,因此在多线程环境下使用原子类是一种很好的做法。