Код: Выделить всё
LinkedListКод: Выделить всё
LinkedList list = new LinkedList();
...
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
Есть ли какие-либо обходные пути или хотя бы объяснение того, почему нисходящийИтератор отсутствует в списке?
Этот вопрос аналогичен вопросу «Можно ли сделать for?» каждый цикл в Java в обратном порядке?. Но во всех ответах рекомендуются специальные решения или сторонние библиотеки.
Может быть, это возможно с использованием потоков? (К сожалению, мой поиск в Google дает только отсутствие стандартного обратного потока для потока. Как я могу перевернуть поток Java 8 и сгенерировать уменьшающийся IntStream значений?).
Как я уже упоминал, мои вопросы связаны с что касается потоков, но:
- Использование потока — это только один вариант; этот вопрос касается java.util.Iterator и java.util.List
- Ответы на этот вопрос решили только частичный случай, но показали отсутствие удобного общего обратного . Если я не ошибаюсь, List — это упорядоченная коллекция. Сортировка сопоставимых элементов для достижения порядка уменьшает объем.
Подробнее здесь: https://stackoverflow.com/questions/422 ... -util-list
Мобильная версия