4 votes

Est-il possible de combiner le ForwardingListIterator de Guava avec un PeekingIterator ?

Je souhaite utiliser Guava pour mettre en œuvre un système "peekable", c'est-à-dire un système qui permet de jeter un coup d'œil à l'intérieur d'une fenêtre. ListIterator qui me permet de jeter un coup d'œil aux éléments précédents et suivants de la liste sans déplacer le curseur. Cette fonction s'apparente à la fonction PeekingIterator Le système d'information de Guava n'est que bidirectionnel, car le système d'information de Guava n'est que bidirectionnel. PeekingIterator n'a qu'un next() et non une méthode previous() .

Cela doit-il être mis en œuvre en écrivant un nouveau PeekingListIterator ou existe-t-il un moyen de combiner les deux concepts dans l'esprit de Guava ?

15voto

Kevin Bourrillion Points 19677

Quel est l'intérêt d'introduire un nouveau concept de "peeking" dans un itérateur qui est déjà facilement défilable dans les deux sens ?

Si vous le souhaitez vraiment, vous pouvez simplement implémenter deux aides statiques triviales :

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;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X