ホームページ > Java > &#&チュートリアル > 要素インデックスにアクセスしながら Java 8 ストリームを反復処理するにはどうすればよいですか?

要素インデックスにアクセスしながら Java 8 ストリームを反復処理するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-27 14:53:10
オリジナル
717 人が閲覧しました

How Can I Iterate Through a Java 8 Stream While Accessing Element Indices?

Java 8 でのインデックスを使用したスト​​リームの反復: 簡潔な解決策

ストリームを効果的に反復してインデックスにアクセスするには、いくつかのアプローチが利用可能です。

インデックスのストリームの使用

最もクリーンな解決策はストリームを作成することです

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());
ログイン後にコピー

このアプローチにより、結果のリストにはインデックスベースの基準を満たす要素のみが含まれることが保証されます。

AtomicInteger Counter の使用

もう 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート