/** Adds a new entry. */ public final void add(long timestamp, long value) { final long now = getNow(); removeOldBuckets(now); Bucket bucket; if (buckets.isEmpty() || (bucket = buckets.getFirst()).deadline < timestamp) { // Create new bucket. bucket = new Bucket(now + bucketSizeMillis); buckets.addFirst(bucket); } bucket.elements++; currentCount++; bucket.sum += value; currentSum += value; }