質問: Arrays.asList(1, 2, 3, 4, 5, 6, 7, 1, 2, 3, 4, 5, 6); list.parallelStream().filter(v -> v > 3).forEach(System.out::println); ``` のようにforEachを使うと順序が無視されます。 StreamAPIをつかって(for文を使わず)リストの要素に順序良くアクセスすることはできないのでしょうか。
回答: 順序を保証するための対策は、yohhoyさんの回答が適切だと思います。 そちらを参照してください。 `Collection#parallelStream`を使っているからです。 `parallelStream`では **並列ストリーム** が作られるので、複数スレッドに分割されて実行され、終わった順に結果が出力されます。 `Collection#stream`の方を使えば、 つまり`list.stream()`とすれば、並列でないストリームが作られるので、順番通りに結果が出力されます。 参考リンク: `Collection.parallelStream` - Java SE 8 API ドキュメント