forEach is defined in Iterable and the Javadoc says:
Unless otherwise specified by the implementing class,
actions are performed in the order of iteration (if an iteration order
is specified).
Now List.iterator() says:
Returns an iterator over the elements in this list in proper sequence.
So by default you should expect that forEach enumerates the elements in proper sequence - unless an list implementation has a differing iterator implementation.
According Stream.forEach the Javadoc tells you that you should not rely on an order:
The behavior of this operation is explicitly nondeterministic. For
parallel stream pipelines, this operation does not guarantee
to respect the encounter order of the stream, as doing so would
sacrifice the benefit of parallelism.
but there is also Stream.forEachOrdered:
Performs an action for each element of this stream, in the encounter
order of the stream if the stream has a defined encounter order.