Voglio avere una vista elenco invertita su un elenco (in modo simile a quello che List#sublist
fornisce una vista elenco secondario su un elenco). C'è qualche funzione che fornisce questa funzionalità?
Non voglio fare alcun tipo di copia dell'elenco né modificare l'elenco.
Basterebbe se, in questo caso, potessi ottenere almeno un iteratore inverso in un elenco.
Inoltre, so come implementarlo da solo. Sto solo chiedendo se Java fornisce già qualcosa del genere.
Implementazione demo:
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(); }
};
}
};
}
Ho appena scoperto che alcune List
implementazioni hanno descendingIterator()
ciò di cui ho bisogno. Sebbene non ci sia una tale implementazione generale per List
. Il che è strano perché l'implementazione che ho visto LinkedList
è abbastanza generale da funzionare con qualsiasi List
.
Collections.reverse(list)