LinkedHashMap делает именно это, см. Javadoc для метода removeEldestEntry .
Что-то вроде этого должно сработать, это удалит самую старую вставленную запись:
Map map = new LinkedHashMap() {
@Override
protected boolean removeEldestEntry(Entry eldest) {
return size() > N;
}
};
Вы также можете удалить самую старую доступную запись, указав ее в конструкторе:
Map map = new LinkedHashMap(16, 0.75f, true) {
@Override
protected boolean removeEldestEntry(Entry eldest) {
return size() > N;
}
};