ストリームを効果的に反復してインデックスにアクセスするには、いくつかのアプローチが利用可能です。
最もクリーンな解決策はストリームを作成することです
String[] names = {"Sam", "Pamela", "Dave", "Pascal", "Erik"}; IntStream.range(0, names.length) .filter(i -> names[i].length() <= i) .mapToObj(i -> names[i]) .collect(Collectors.toList());
このアプローチにより、結果のリストにはインデックスベースの基準を満たす要素のみが含まれることが保証されます。
もう 1 つの方法は、変更可能なカウンターをstream:
String[] names = {"Sam", "Pamela", "Dave", "Pascal", "Erik"}; AtomicInteger index = new AtomicInteger(); List<String> list = Arrays.stream(names) .filter(n -> n.length() <= index.incrementAndGet()) .collect(Collectors.toList());
このメソッドは、for ループに似た使い慣れた構文を提供します。ただし、項目が順番に処理されない可能性があるため、このアプローチを並列ストリームで使用すると機能が停止する可能性があることに注意することが重要です。
最終的に、アプローチの選択は特定の要件によって決まります。アプリケーションのパフォーマンスに関する考慮事項
以上が要素インデックスにアクセスしながら Java 8 ストリームを反復処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。