ListIterator для одностороннего связанного списка

Итак, я реализовал односвязный LinkedList, который расширяет общий тип AbstractSequentialList. Я переопределяю метод listIterator, поэтому создал новый класс, реализующий общий тип ListIterator, экземпляр которого создается в методе listIterator моего класса связанного списка. У меня есть несколько вопросов:

  • Метод listIterator, который я переопределяю, нуждается в параметре int, какова цель этого? Должен ли я перейти к этому индексу списка и передать этот узел созданному экземпляру ListIterator?
  • Всегда ли индекс начинается с 0 для ListIterator, даже если я начинаю итерацию с узла в середине списка?
  • Как в классе ListIterator написать методы hasPrevious и Previous, если список односвязный?

person user8967903    schedule 30.11.2017    source источник
comment
3. Очень медленно.   -  person user2357112 supports Monica    schedule 01.12.2017
comment
3. Вы не можете эффективно. Вам нужно будет сделать его дважды связанным, чтобы это работало хорошо.   -  person Louis Wasserman    schedule 01.12.2017


Ответы (1)


Параметр представляет собой начальную позицию (см. это). HasPrevious вам нужно проверить курсор !=0 (см. это). Для предыдущего вам нужно будет использовать метод get(I) реализации списка, как указано здесь.

Это помогает?

person SteveR    schedule 30.11.2017