Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement