2016-01-22 3 views
-3

Я думаю, что это стандартная проблема. Мне нужен список, который я могу повторить и назад. Если итерация вперед и итерационное богатство, например. 80% от длины списка, новый элемент должен быть добавлен в конец списка, и такое же количество элементов должно быть удалено с начала списка. Это должно происходить во время итерации, не влияя на итератор. Текущий итератор должен оставаться в силе. Те же процедуры должны работать, если итератор идет назад. Есть ли какой-либо список, очередь или стек в любой коллекции, которая соответствует этим требованиям? Кто-нибудь знает?Java бесконечный список

Thx

+2

Вы можете создать свой собственный класс ListIterator – Ferrybig

+0

Это очень конкретный запрос, вам почти наверняка придется это реализовать самостоятельно. Также ваш список не может быть бесконечным, потому что у вас закончится нехватка памяти. –

+1

Не звучит как стандартная проблема для меня. Но так или иначе, если вам удалось реализовать до сих пор? –

ответ

0

это может быть очень легко реализован с использованием массива.

  1. Установить начальный размер массива.

  2. Создать массив такого размера, и вы желаемый тип

  3. Создать индекс (интермедиат, например), который увеличивается/уменьшается при переборе массива.

  4. Добавить логику для отслеживания индекса (например, если индекс> 0,8 * размер -> добавить больше элементов в массиве)

Я хотел бы использовать объект Java ArrayList для этой работы.

0

Что вы говорите, это не бесконечный список, а круговой список (бесконечный список не удалялся с самого начала).

Что вы хотите - это функция с обычным списком внутри, которая принимает итератор в качестве параметра и просто перекатывается, когда достигает конца. Таким образом, элемент 101 из 100 списка элементов, является перезаписываемым элементом 1.

Смежные вопросы