В чем смысл введения новой концепции «заглядывания» в итератор, который уже легко прокручивается в обоих направлениях?
Если вы действительно этого хотите, вы можете просто реализовать два простых статических помощника:
public static <T> T peekNext(ListIterator<T> iterator) {
T next = iterator.next();
iterator.previous();
return next;
}
public static <T> T peekPrevious(ListIterator<T> iterator) {
T previous = iterator.previous();
iterator.next();
return previous;
}