ホームページ >Java >&#&チュートリアル >Java の For-Each ループで反復カウンターにアクセスするにはどうすればよいですか?

Java の For-Each ループで反復カウンターにアクセスするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-02 15:47:02978ブラウズ

How Can I Access Iteration Counters in Java's For-Each Loop?

Java の For-Each ループでの反復カウンターへのアクセス

Java の For-Each ループは、コレクションを反復するための簡潔な構文を提供します。ただし、明示的な反復カウンターがありません。この記事では、この情報を取得するための代替方法について説明します。

カウンター変数を使用したアプローチ

for-each ループには固有のカウンターがありませんが、次のように作成できます。あなた自身の。次の例を考えてみましょう。

<code class="java">int i = 0;
for (String s : stringArray) {
  doSomethingWith(s);
  i++;
}</code>

反復ごとにカウンタ変数をインクリメントすることで、ループ内の現在位置を追跡できます。

カウンタ変数アプローチの制限事項

  • カウンター変数の初期化と維持が別途必要です。
  • リンクされたリストなど、インデックス付けをサポートしていないコレクションでは機能しません。

代替アプローチ: 特殊なコレクションの使用

ArrayList や LinkedList などの一部の特殊な Java コレクションは、インデックス情報にアクセスするための追加メソッドを提供します。たとえば、ArrayList の forEachWithIndex() メソッドを使用すると、要素とそのインデックスの両方をパラメータとして受け取るラムダ式を渡すことができます。

<code class="java">ArrayList<String> stringArray = ...;
stringArray.forEachWithIndex((i, s) -> doSomethingWith(i, s));</code>

結論

Java の for-each ループには組み込みの反復カウンターがありませんが、この情報を取得するための代替アプローチがあります。カウンター変数を使用すると柔軟なソリューションが提供されますが、特定のコレクションの種類には制限があります。インデックス アクセスが不可欠であり、コレクションがそれをサポートしている場合は、インデックス対応メソッドを備えた特殊なコレクションの使用を検討してください。

以上がJava の For-Each ループで反復カウンターにアクセスするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。