aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/caelo/util/Histogram.kt
blob: 6c4add18b0207f7a92bee1833643df80565ace25 (plain)
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()
    }
}