В настоящее время я пытаюсь узнать, как реализовать свои собственные ListIterators. У меня большая часть реализована и готова к работе, за исключением того, что меня смущает метод previous(). По стандартному соглашению, могу ли я получить объяснение того, как обычно интерпретируется предыдущая().
i.e.:
>cursor<
dog cat fish bird frog snake
Согласно Oracle Java Platform 7 API:
E предыдущий()
Возвращает предыдущий элемент в списке и перемещает позицию курсора назад. Этот метод может вызываться повторно для прохода по списку в обратном направлении или смешиваться с вызовами next() для перехода туда и обратно. (Обратите внимание, что попеременные вызовы следующего и предыдущего будут многократно возвращать один и тот же элемент.)
Чего я не совсем понимаю, так это того, что если вызывается предыдущая (), возвращает ли она «рыбу» или «кошку».
Я понимаю это 2 способами:
1) «рыба» была объектом, на котором вы были ранее
2) «кошка» — это объект с индексом, численно предшествующим индексу «рыба».
Если предыдущий возвращает «рыбу», то действительно ли remove() удаляет один и тот же элемент независимо от направления обхода?