Если это односвязный список, реализация ListIterator
будет непростой (если не невозможной), поскольку она требует навигации в обоих направлениях, которую вы можете реализовать, перезапуская с головы снова и снова.
Либо сделайте свой список двойным, либо вам придется бросить UnsupportedOperationException
на множество методов. (Или жить с O (N) производительности в два раза меньше методов)