Какие операции сохраняют порядок [дубликаты]

На этот вопрос уже есть ответ:

Как обеспечить порядок обработки в потоках java8? 2 ответа

TL; DR; Я ищу место, где я могу найти определенную промежуточную или терминальную операцию. Где я могу найти такую документацию?

Редактироват Это не дубликат Как обеспечить порядок обработки в потоках java8?, поскольку этот вопрос не дает исчерпывающего списка операций.

Задний пла

The пакетная документация говорит:

У потока или нет поток имеет порядок встречи, зависит от источника и промежуточных операций

Что повторяется в это отличный ответ от stackoverflow

Чтобы обеспечить поддержание порядка на протяжении всей потоковой операции, вы должны изучить документацию об источнике потока, всех промежуточных операциях и терминальной операции на предмет того, поддерживают ли они порядок или нет (или источник имеет порядок в первое место)

Все хорошо, но на какую документацию мне следует обратить внимание? пакетная документация упоминает в примере, чтоmap гарантирует порядок, но у него нет исчерпывающего списка.javadoc для класса Stream документирует некоторые промежуточные операции, но не все. Взять напримерmap:

Возвращает поток, состоящий из результатов применения данной функции к элементам этого потока.

Это промежуточная операция.

илиfilter

Возвращает поток, состоящий из элементов этого потока, соответствующих данному предикату.

Это промежуточная операция.

Ни один из них не описывает, сохраняют ли они порядок.

Этот ответ на переполнение стека утверждает:

Фактически каждая промежуточная операция сохраняет порядок по умолчанию. Единственные исключения:

unordered (), который снимает ограничение порядкsorted (), который меняет порядок.

Когда это не указано явно, вы можете предположить, что операция сохраняет порядок. Даже Different () сохраняет порядок, хотя это добавляет много сложности для параллельного потока.

но есть ли официальная документация, подтверждающая это?

Дополнительный креди

На самом деле есть две проблемы с заказом.

Выходные данные операции поддерживают тот же порядок, что и входны Операция выполняется по порядку для каждого элемента.

Например, параллельmapперация @ может проходить по всем элементам в произвольном порядке (нарушая 2.), но сохраняя порядок в возвращаемом потоке (подчиняясь 1.)

Ответы на вопрос(2)

Ваш ответ на вопрос