Chociaż jest forEachkrótszy i wygląda ładniej, sugerowałbym użycie go forEachOrderedw każdym miejscu, w którym ma znaczenie, aby wyraźnie to określić. W przypadku strumieni sekwencyjnych forEachwydaje się, że szanuje kolejność, a nawet wykorzystuje wewnętrzny kod API strumienia forEach(dla strumienia, o którym wiadomo, że jest sekwencyjny), gdzie jest to semantycznie konieczne forEachOrdered! Niemniej jednak możesz później zdecydować się na zmianę strumienia na równoległy, a kod zostanie uszkodzony. Również podczas korzystania forEachOrderedz czytnika Twojego kodu zobaczysz komunikat: „tu liczy się kolejność”. W ten sposób lepiej dokumentuje twój kod.
Należy również zauważyć, że dla strumieni równoległych forEachnie tylko jest wykonywany w kolejności niedetenistycznej, ale można go również wykonywać jednocześnie w różnych wątkach dla różnych elementów (co nie jest możliwe w przypadku forEachOrdered).
Wreszcie oba forEach/ forEachOrderedsą rzadko przydatne. W większości przypadków faktycznie potrzebujesz jakiegoś wyniku, a nie tylko efektu ubocznego, dlatego operacje takie jak reducelub collectpowinny być bardziej odpowiednie. Wyrażanie operacji redukcji z natury za pomocą forEachjest zwykle uważane za zły styl.