Хоча forEachкоротший і виглядає симпатичнішим, я пропоную використовувати forEachOrderedв будь-якому місці, де має значення порядок, щоб чітко це вказати. Для послідовних потоків, forEachздається, поважає порядок і навіть використовує внутрішній код API потоку forEach(для потоку, який, як відомо, є послідовним), де це семантично необхідно використовувати forEachOrdered! Проте пізніше ви можете вирішити змінити свій потік на паралельний, і ваш код буде зламаний. Також коли ви використовуєтеforEachOrdered зчитувач вашого коду, бачить повідомлення: "порядок тут важливий". Таким чином, він краще документує ваш код.
Зауважте також, що для паралельних потоків forEachне тільки виконується в недетермінованому порядку, але ви також можете одночасно виконувати його в різних потоках для різних елементів (що неможливо з forEachOrdered).
Нарешті, обидва forEach/ forEachOrderedрідко бувають корисними. У більшості випадків вам насправді потрібно отримати якийсь результат, а не лише побічний ефект, отже операції, подібні reduceабо collectповинні бути більш придатними. Вираження скорочувальної природи за допомогою forEachзвичайно вважається поганим стилем.