📅  最后修改于: 2023-12-03 14:42:43.945000             🧑  作者: Mango
在Java的AtomicIntegerArray类中,getAndUpdate()方法会获取指定位置的元素并用给定的函数来更新它。这个方法是原子操作的。
AtomicIntegerArray是一个可变的数组,每个元素都是一个原子类型的int值。它可以被用来在多线程环境下安全地修改某个数组元素。
getAndUpdate(int i, IntUnaryOperator 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()方法,它的返回值是旧值。