LinkedList можно итерация, используя восходящий или нисходящий итератор, как это:descendingIterator для java.util.List
LinkedList<Object> list = new LinkedList<Object>();
...
StringJoiner sJ1 = new StringJoiner(" ");
list.iterator().forEachRemaining(a -> sJ1.add(a.toString()));
System.out.println("averse: \n" + sJ1.toString());
StringJoiner sJ2 = new StringJoiner(" ");
list.descendingIterator().forEachRemaining(a -> sJ2.add(a.toString()));
System.out.println("reverse: \n" + sJ2.toString());
averse: Hello 2 Chocolate 10 reverse: 10 Chocolate 2 Hello
Но descendingIterator не доступна для Списка и ArrayList. Есть ли какое-либо обходное решение или объяснение в списке, почему descendingIterator отсутствует в Список?
Вопрос аналогичен Can one do a for each loop in java in reverse order?. Но все ответы рекомендуют специальные решения или сторонние библиотеки.
Возможно, это возможно, используя потоки потоков? (К сожалению, мой прибегая к помощи дает лишь отсутствие стандартного обратного потока для Java 8 stream reverse order)
Как я уже упоминал мои вопросы связан к тому, что о потоках, но:
- Использование потока только вариант, речь идет о java.util.Iterator и java.util.List
- Ответы на этот вопрос решены только в частичном случае, но показали отсутствие удобного общего обратного хода. Если я не пропущу, список List упорядочен, сортировка элементов сравнения, для достижения порядка уменьшает объем.
Возможный дубликат [обратного порядка потока Java 8] (http://stackoverflow.com/questions/24010109/java-8-stream-reverse-order) – Andremoniy
Возможно, вы просто хотите использовать 'ArrayDeque' вместо' ArrayList'? – Holger