
Untitled
By: a guest on
Mar 22nd, 2012 | syntax:
Java | size: 0.62 KB | hits: 15 | expires: Never
private static class RunningAvg {
private final long[] slots;
private int offset;
private long sum;
public RunningAvg(int slotCount) {
this.slots = new long[slotCount];
this.offset = 0;
}
public void add(long value) {
// add new value and remove old value (last in array) from sum
sum = value - slots[(offset+1) % slots.length];
slots[offset++ % slots.length] = value;
}
public long avg() {
int sampleCount = Math.min(this.offset, this.slots.length);
return sum / sampleCount;
}
}