The Java.AtomicInteger.getAndAccumulate() method is an inbuilt method, which updates the current value of the object by applying the specified operation on the current value and value passed as a parameter. It takes an integer as its parameter and an object of IntBinaryOperator interface and applies the operation specified in the object to the values. It returns the previous value.
Syntax:
public final int getAndAccumulate(int y,
IntBinaryOperator function)
Parameters: This method accepts two parameters:
- y: an integer on which the function is to be applied.
- function: function applied to the current value of the object and the value y.
Return Value: The function returns the previous value of the current object.
Example to demonstrate the function.
// Java program to demonstrate// working of getAndAccumulate() method  import java.util.concurrent.atomic.AtomicInteger;import java.util.function.IntBinaryOperator;  public class Demo {    public static void main(String[] args)    {        new UserThread("Thread A");        new UserThread("Thread B");    }}  class Shared {    static AtomicInteger ai        = new AtomicInteger(1);}  class UserThread implements Runnable {    String name;      UserThread(String name)    {        this.name = name;        new Thread(this).start();    }      IntBinaryOperator ibo = (x, y) -> (x * y);      int value = 5;    @Override    public void run()    {        for (int i = 0; i < 3; i++) {              int ans                = Shared.ai                      .getAndAccumulate(value, ibo);              System.out.println(name + " "                               + ans);        }    }} |
Thread A 1 Thread A 5 Thread A 25 Thread B 125 Thread B 625 Thread B 3125
Reference: https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html

… [Trackback]
[…] Find More on that Topic: geeksforgeeks.org/atomicinteger-getandaccumulate-method-in-java-with-examples-2/ […]