Is there a fixed sized queue which removes excessive elements?
Actually the LinkedHashMap does exactly what you want. You need to override the removeEldestEntry method. Example for a queue with max 10 elements: queue = new LinkedHashMap<Integer, String>() { @Override protected boolean removeEldestEntry(Map.Entry<Integer, String> eldest) { return this.size() > 10; } }; If the “removeEldestEntry” returns true, the eldest entry is removed from the map.