25 lines
695 B
Java
25 lines
695 B
Java
package eu.ztsh.lfr.model;
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
import java.util.concurrent.atomic.DoubleAdder;
|
|
|
|
public class YearDataAccumulator {
|
|
|
|
private final DoubleAdder sum = new DoubleAdder();
|
|
private final AtomicInteger counter = new AtomicInteger();
|
|
|
|
public void add(double value) {
|
|
synchronized (this) {
|
|
sum.add(value);
|
|
counter.incrementAndGet();
|
|
}
|
|
}
|
|
|
|
public BigDecimal getAverage() {
|
|
return BigDecimal.valueOf(sum.sum()).setScale(2, RoundingMode.HALF_UP)
|
|
.divide(BigDecimal.valueOf(counter.get()), RoundingMode.HALF_UP);
|
|
}
|
|
|
|
}
|