1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
package moe.nea.caelo.util class Histogram<T>(val maxSize: Int) : Iterable<T> { private val dequeue = ArrayDeque<T>() fun append(element: T) { dequeue.addLast(element) if (dequeue.size > maxSize) { dequeue.removeFirst() } } val size get() = dequeue.size override fun iterator(): Iterator<T> { return dequeue.iterator() } }