aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/moe/nea/caelo/util/Histogram.kt
diff options
context:
space:
mode:
authorLinnea Gräf <nea@nea.moe>2024-03-30 19:44:32 +0100
committerLinnea Gräf <nea@nea.moe>2024-03-30 19:44:32 +0100
commit0414b87e02e51b51cf9ef0c165e5ed61e5193160 (patch)
tree0d1a0144c44b252dcabc2c1d685a7d2b27e6adee /src/main/java/moe/nea/caelo/util/Histogram.kt
downloadveloxcaelo-0414b87e02e51b51cf9ef0c165e5ed61e5193160.tar.gz
veloxcaelo-0414b87e02e51b51cf9ef0c165e5ed61e5193160.tar.bz2
veloxcaelo-0414b87e02e51b51cf9ef0c165e5ed61e5193160.zip
Initial commit
Diffstat (limited to 'src/main/java/moe/nea/caelo/util/Histogram.kt')
-rw-r--r--src/main/java/moe/nea/caelo/util/Histogram.kt17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/main/java/moe/nea/caelo/util/Histogram.kt b/src/main/java/moe/nea/caelo/util/Histogram.kt
new file mode 100644
index 0000000..6c4add1
--- /dev/null
+++ b/src/main/java/moe/nea/caelo/util/Histogram.kt
@@ -0,0 +1,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()
+ }
+} \ No newline at end of file