Uma pergunta muito simples e rápida nas bibliotecas Java: existe uma classe pronta que implementa uma Queue
com um tamanho máximo fixo - isto é, sempre permite a adição de elementos, mas remove silenciosamente os elementos principais para acomodar espaço para os elementos adicionados recentemente.
Obviamente, é trivial implementá-lo manualmente:
import java.util.LinkedList;
public class LimitedQueue<E> extends LinkedList<E> {
private int limit;
public LimitedQueue(int limit) {
this.limit = limit;
}
@Override
public boolean add(E o) {
super.add(o);
while (size() > limit) { super.remove(); }
return true;
}
}
Até onde eu vejo, não há implementação padrão no stdlibs Java, mas pode haver no Apache Commons ou algo assim?