Je veux avoir une liste inversée vue sur une liste (d'une manière similaire List#sublist
fournit une sous-liste de la vue sur une liste). Est-il une fonction qui fournit cette fonctionnalité?
Je ne veux pas faire toute sorte de copie de la liste ou modifier la liste.
Il suffirait, si je pouvais obtenir au moins un itérateur inverse, sur une liste dans ce cas.
Aussi, je sais comment mettre en œuvre cette moi-même. Je demande juste si Java fournit déjà quelque chose comme cela.
Démonstration de mise en œuvre:
static <T> Iterable<T> iterableReverseList(final List<T> l) {
return new Iterable<T>() {
public Iterator<T> iterator() {
return new Iterator<T>() {
ListIterator<T> listIter = l.listIterator(l.size());
public boolean hasNext() { return listIter.hasPrevious(); }
public T next() { return listIter.previous(); }
public void remove() { listIter.remove(); }
};
}
};
}
J'ai juste trouvé que quelques - List
implémentations ont descendingIterator()
ce dont j'ai besoin. S'il n'est pas général, ce type de mise en œuvre pour l' List
. Ce qui est étrange parce que la mise en œuvre que j'ai vu en LinkedList
est assez générale pour travailler avec n'importe quel List
.