From 030ff9f6b351fce73e01646650d04db3758b5484 Mon Sep 17 00:00:00 2001 From: Robert von Burg Date: Thu, 15 Jun 2017 13:33:24 +0200 Subject: [PATCH] [New] Added FixedSizeQueue --- .../utils/collections/FixedSizeQueue.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 li.strolch.utils/src/main/java/li/strolch/utils/collections/FixedSizeQueue.java diff --git a/li.strolch.utils/src/main/java/li/strolch/utils/collections/FixedSizeQueue.java b/li.strolch.utils/src/main/java/li/strolch/utils/collections/FixedSizeQueue.java new file mode 100644 index 000000000..072bdb606 --- /dev/null +++ b/li.strolch.utils/src/main/java/li/strolch/utils/collections/FixedSizeQueue.java @@ -0,0 +1,33 @@ +package li.strolch.utils.collections; + +import java.util.Collection; +import java.util.LinkedList; + +public class FixedSizeQueue extends LinkedList { + + private static final long serialVersionUID = 1L; + + private int maxSize; + + public FixedSizeQueue(int size) { + this.maxSize = size; + } + + @Override + public boolean add(E e) { + boolean b = super.add(e); + if (size() >= this.maxSize) { + removeRange(0, size() - this.maxSize); + } + return b; + } + + @Override + public boolean addAll(int index, Collection c) { + boolean b = super.addAll(index, c); + if (size() >= this.maxSize) { + removeRange(0, size() - this.maxSize); + } + return b; + } +} \ No newline at end of file