Звучит так, как будто тебе нужно ... стек !
Нет, я просто шучу. «Стек» на самом деле не совсем подходящий термин, так как стек является «первым пришел-первым вышел», что означает, что вы добавляете материал в верх, а затем снимаете его в обратном порядке.
Что вам действительно нужно, так это Deque реализация. Это очередь, которая позволяет вставлять и удалять на обоих концах. Я предполагаю, что значения нужно отбрасывать только тогда, когда очередь заполнится. Ваше описание не сделало это полностью ясным. Если вы всегда отбрасываете значения при вставке новых, вы в конечном итоге получите структуру данных, в которой в каждый момент времени есть только один элемент.
Я не знаю реализации, которая автоматически ограничивает количество элементов. ArrayDeque подходит довольно близко, но вам все равно нужно проверить размер на вставках и удалить посторонние элементы с самого начала. Он предлагает типичный iterator
метод коллекций Java, который позволяет вам циклически перебирать элементы. Для коллекции этого типа заказ гарантирован.