package com.wealthfront.magellan;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Iterator;
class EvictingQueue<E> implements Iterable<E> {
private final Deque<E> queue;
private final int maxSize;
EvictingQueue(final int maxSize) {
this.maxSize = maxSize;
queue = new ArrayDeque<>(maxSize);
}
public void add(E e) {
if (queue.size() == maxSize) {
queue.remove();
}
queue.add(e);
}
@Override
public Iterator<E> iterator() {
return queue.iterator();
}
}