Javaでの繰り返し処理に必要な拡張for文を基本から解説
Javaでfor文はよく使われます。今回はfor文をさらに便利に使うことができる「拡張for文」について、基本から見ていきましょう。for文と使い分けることで、コードをより書きやすくなります。配列やlistの処理の仕方も併せて解説します。
問題解決力を身に付ける若手、新人SE・PG向けの通年Java研修(1~3ヶ月コース)はこちら
目次[非表示]
Javaにおける拡張for文とfor文の基本
繰り返し処理を決められた回数実行するfor文をより簡潔に記述する「拡張for文」を使えると、コードをすっきり書くことができるようになります。拡張for文の基本的な定義や使い方から、まずは学びましょう。
若手、新人エンジニアの成長を阻む 人材育成5つの失敗と解決策はこちら
拡張for文の基本的な使い方
通常のfor文は、下記のように記述します。
一方、拡張for文は下記のような記述です。
配列やコレクションの要素に対して、順番に処理するために使われます。コードのサンプルを見ていきましょう。
配列にある3つの要素を取り出しながら、ブロック内の処理を行います。結果は以下のように出力されます。
全ての要素を1回ずつ取り出したい場合に便利な文です。
拡張for文はJ2SE 5.0から登場
拡張for文は、J2SE 5.0(java 2 SEのバージョン 5.0)から登場しています。J2SE 5.0は2004年にリリースされていて、現在のコードやエディタで対応していない心配はありません。
Javaの拡張for文では配列やlistの考え方も身に着けよう
拡張for文を用いた配列やlistの処理の仕方についても学んでいきましょう。配列とリストの違いと、具体的な処理方法について解説します。
全国の若手~ベテランエンジニアが受講している個別指導のオンライン・リモート講座(入門5日・基礎10日)はこちら
配列やlistの基本と違い
配列とlistは、見た目や役割がとてもよく似ています。大きく異なるのは、データの持ち方です。
listにおける各要素は、次に追加された要素にリンクします。一方、配列はメモリ上のまとまった領域を分割し、それぞれにインデックスを振ります。これにより、要素は並び替えや入れ替えが難しいものの、初期から要素数が確定している場合に使いやすいという特性を持っているのです。
拡張for文を使って配列やlistをコンパクトに処理
拡張for文を用いることで、配列やlistをコンパクトに処理することが可能です。通常のfor文を用いた、次のようなfor文があるとしましょう。
拡張for文を使うと以下のように置き換えられます。
このように、非常にコンパクトに記載できるようになるので便利です。通常のfor文と使い分けられるようになっておきましょう。
■関連記事
Javaの拡張for文とiterator、map、二次元配列も把握しよう
Javaのiterator(イテレータ)やmap、二次元配列について、拡張for文による処理の仕方をそれぞれ解説します。
学歴、学部による「IT知識」「基礎知識」の格差を無くす個別指導の新人研修プロエンジニア育成コース(Java2・3ヶ月コース)はこちら
「iterator(イテレータ)」と拡張for文
iteratorは、Iterableインタフェースを実装したクラスのオブジェクトに対し、そのオブジェクトが持つ要素集合に順番にアクセスを行うためのインターフェイスです。
拡張for文の内部ではiteratorが使われているため、拡張for文を使ったループ処理はiteratorを使用したものと同様です。
ArrayListやHashSetなど、Iterableインターフェースを実装するクラスのiteratorメソッドを呼び出すと、イテレータを得ることができます。
Iteratorインターフェースを実装クラスでは、次の2つのメソッドを実装する必要があります。
- hasNextメソッド:次の要素があればループする
- nextメソッド:次の要素に移動
便利なクラス「map」の要素を拡張for文で処理する
Javaにおけるmapクラスとは、「キー」となる何かのクラスのインスタンスと、それに値を対応付けて保存するためのものです。特定のキーの有無を調べたり、キーに対する値に素早くアクセスするために用いられます。
拡張for文を用いるには、以下のような書き方をします。
二次元配列の基本と拡張for文での処理
二次元配列とは、通常の一次元配列にもう一次元が加わることです。マンションで例えてみましょう。通常の一次元配列の場合、階のみの配列になりますが、二次元配列では、階と部屋番号を同時に扱うことができるようになります。
二次元配列は、まず変数の型の後の[]を二つ書けば宣言したことになります。
拡張for文での記述は、一次元配列と大きな違いはありません。配列ごとに対応する拡張for文を記述する形になります。
拡張for文は繰り返しをコンパクトに処理
拡張for文は、繰り返し処理であるfor文を、コンパクトに記述することが可能です。J2SE 5.0から登場し、今も使うことができます。
全国の若手~ベテランエンジニアが受講している個別指導のオンライン・リモート講座(入門5日・基礎10日)資料ダウンロードはこちら
通常のfor文でも問題ありませんが、コードをすっきりさせることができるので、見やすいコードを作成するためにも使い方を覚えておきましょう。