コレクションに含まれるすべての要素にアクセスすることを考えます。Listのように要素番号によってアクセスできるものもあれば、Mapや Setのように、要素番号によってアクセスできないものもあります。つまり、コレクションに格納されたすべての項目の一覧を表示する際に、単純な for文が使用できない場合があります。また、詳細は省略しますが、Listでも、ArrayListではなく LinkedListでは要素番号によってアクセスすると処理時間がかかります。
コレクションに格納されたすべての要素に対して処理を実施する場合には、イテレータを使用すると便利で高速です。Iteratorインターフェイスを使用することでソースコードの記述がシンプルになる場合があります。また、コレクションの種類に関わらず、統一的に記述できる利点もあります。
Iteratorインターフェイスで重要なメソッドは以下の通りです。
Iteratorインターフェイスについて詳細が気になる方は、説明書(API)を参照してください。Java SE 7(Java 1.7)の説明書(API)を掲示しておきます→Iteratorインターフェイス。
拡張 for文とは、イテレータを暗黙的に使用する for文です。基本的な形は以下の通り。
for(Object object: objects) { 処理; }
見かけ上、イテレータが存在しないように見えますが、内部ではイテレータを駆使して処理が行われています。
イテレータを使用するほとんどの場合、拡張 for文を使用したものに置き換えることができます。
本章では、Listと Map、それから Setそれぞれについて、イテレータを使用してすべての要素にアクセスるものと、拡張 for文を使用してすべての要素にアクセスするものを見ます。
また、配列について拡張 for文を使用した例を見ます。