Мне было полезно иметь структуру данных на Java, которая имеет все функциональные возможности списка, но имеет максимальную емкость хранилища и удаляет старые данные при добавлении новых данных. Возможно, в какой-то момент я захочу реализовать очередь фиксированного размера, которая поддерживает более общий порядок данных и отбрасывает старые данные в самом низком порядке, но это на будущее.
В настоящее время я внедряю это примерно так:
public class FixedSizeList<T> {
private final int maxSize;
private final LinkedList<T> list = new LinkedList<T>();
public FixedSizeQueue(int maxSize) {
this.maxSize = maxSize < 0 ? 0 : maxSize;
}
public T add(T t) {
list.add(t);
return list.size() > maxSize ? list.remove() : null;
}
// add remaining methods...
}
Есть ли (а) существующая структура данных, которая удовлетворяет мои потребности, или (б) лучший способ реализации этой структуры данных?