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

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

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

介绍

在Java的AtomicIntegerArray类中,getAndUpdate()方法会获取指定位置的元素并用给定的函数来更新它。这个方法是原子操作的。

AtomicIntegerArray是一个可变的数组,每个元素都是一个原子类型的int值。它可以被用来在多线程环境下安全地修改某个数组元素。

语法

getAndUpdate(int i, IntUnaryOperator updateFunction)

参数说明
  • i:要更新元素的下标。
  • updateFunction:一个函数,用于计算新的值。参数是原本的值,返回值是新的值。
返回值

返回原本的值。

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

public class AtomicIntegerArrayExample {
    public static void main(String[] args) {
        AtomicIntegerArray intArray = new AtomicIntegerArray(5);
        intArray.set(0, 1);
        intArray.set(1, 2);
        intArray.set(2, 3);
        intArray.set(3, 4);
        intArray.set(4, 5);

        System.out.println("原来的值是:" + intArray.get(2));
        intArray.getAndUpdate(2, new IntUnaryOperator() {
            @Override
            public int applyAsInt(int operand) {
                return operand + 1;
            }
        });
        System.out.println("更新后的值是:" + intArray.get(2));
    }
}

上述代码创建了一个AtomicIntegerArray对象,并设置了5个元素的值。然后使用getAndUpdate()方法来更新第3个元素。我们传递给它的函数将原始值加1,以得到新的值。

输出如下:

原来的值是:3
更新后的值是:4

在这里,函数返回的值是新的元素值。如果只需要获取旧的值,请使用getAndAccumulate()方法,它的返回值是旧值。