Как получить перевернутое представление списка для списка в Java?

Я хочу иметь в списке перевернутый список (аналогично тому, как Список # подсписок предоставляет представление подсписка в списке). Есть ли какая-то функция, которая обеспечивает эту функциональность?

Я не хочу ни делать какую-либо копию списка, ни изменять список.

Было бы достаточно, если бы я мог получить хотя бы обратный итератор в списке в данном случае


Кроме того, я сам знаю, как это реализовать. Я просто спрашиваю, предоставляет ли 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 .

208
задан ZhaoGang 22 September 2018 в 00:17
поделиться