package toritools.additionaltypes; import java.util.LinkedList; /** * Queue with a size limit. Use push(); * * @author toriscope * * @param <T> */ public class HistoryQueue<T> extends LinkedList<T> { private static final long serialVersionUID = 1L; private final int MAX_HISTORY; public HistoryQueue(final int MAX_HISTORY) { this.MAX_HISTORY = Math.max(1, MAX_HISTORY); } /** * Push to first index, remove last if size is above max. */ @Override public void push(final T latest) { super.addFirst(latest); if (super.size() > MAX_HISTORY) { super.removeLast(); } } }