Отсутствие нисходящего итератора в java.util.List.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Отсутствие нисходящего итератора в java.util.List.

Сообщение Anonymous »

Код: Выделить всё

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


Подробнее здесь: https://stackoverflow.com/questions/422 ... -util-list
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»