イテラブルJ2SEに含まれるインタフェースのひとつ。パッケージも含めたインタフェース名はjava.lang.Iterable。拡張forに渡せるようにするためのインタフェース。このインタフェースの実装クラスは、拡張forに渡すことができるようになる。Iterable<T>インタフェースはiterator()メソッドを持つため、このメソッドを実装する必要がある。拡張forに渡すと、拡張forの内部でiterator()メソッドが呼び出される。iterator()メソッドはイテレーターを返すよう実装しなければならない。この返したイテレーターを使用して、拡張forはループを行う。逆に言えば、「拡張forでループしたい配列やコレクション」のイテレーターを返せばよい、ということである。Iterable<T>インタフェースはジェネリッククラスである。型引数には、iterator()メソッドで返すイテレーターであるIterator<E>の「E」と同じ型を指定すればよい。)」の「型」を指定すればよい。Iterable<T>インタフェースを実装することで、拡張forに渡すことができるようになり、より便利なクラスとなる。その実装には注意すること。クラスが配列やコレクションを複数持つ場合でも、iterator()メソッドで返せるイテレーターはそのうちの1つだけである。そのため、クラスを使う側が直感的に「どの配列やコレクションが拡張forでループされる」のか分かる場合でなければIterable<T>インタフェースを実装すべきではない。使用者にとって想定外の配列、コレクションが拡張forでループされた場合、バグの原因となりうるからである。Iterable<T>インタフェースを実装するクラス。ArrayList<E>をフィールドに持ちます。Iterable<T>インタフェースのiterator()メソッドを実装します。使用することができます。arylstのイテレーターを返します。拡張forはこのイテレーターを使ってループします。HasArrayListクラスのインスタンスを作ります。iterator()メソッドを実装したメソッドが呼び出されます。arylst.iterator()で取得したイテレーターでループします。一周ごとに、sにarylstの各要素が入るわけです。どんなクラスも拡張forに渡すことができます。上記の拡張forは、以下の処理を内部的に行っています。これを簡略化して書けるのが拡張forのメリットです。Iterable<T>インタフェースを実装するメリットです。Iterable<T>インタフェースを実装するクラス。ArrayList<E>をフィールドに持ちます。Iterable<T>インタフェースのiterator()メソッドを実装します。使用することができます。arylstのイテレーターを返します。拡張forはこのイテレーターを使ってループします。HasArrayListクラスのインスタンスを作ります。iterator()メソッドを実装したメソッドが呼び出されます。arylst.iterator()で取得したイテレーターでループします。一周ごとに、sにarylstの各要素が入るわけです。どんなクラスも拡張forに渡すことができます。上記の拡張forは、以下の処理を内部的に行っています。これを簡略化して書けるのが拡張forのメリットです。Iterable<T>インタフェースを実装するメリットです。}}「みだし」に含まれているページIterable<T>「解説」に含まれているページIterable<T>拡張for「サンプルプログラムとか」に含まれているページIterable<T>拡張forusersupdate:2009/06/06このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。詳しくは「JavaA2Z」表紙の説明をご覧ください。