Я хочу иметь в списке перевернутый список (аналогично тому, как Список # подсписок
предоставляет представление подсписка в списке). Есть ли какая-то функция, которая обеспечивает эту функциональность?
Я не хочу ни делать какую-либо копию списка, ни изменять список.
Было бы достаточно, если бы я мог получить хотя бы обратный итератор в списке в данном случае
Кроме того, я сам знаю, как это реализовать. Я просто спрашиваю, предоставляет ли Java что-то подобное.
Демонстрационная реализация:
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(); }
};
}
};
}
Я только что обнаружил, что некоторые реализации List
имеют DesndingIterator ()
, что и есть Я нуждаюсь. Хотя для List
такой реализации не существует. Это немного странно, потому что реализация, которую я видел в LinkedList
, достаточно универсальна для работы с любым List
.