本文へスキップ

イテレータとは?

いてれーた

イテレータとは、コレクションや配列などのデータ構造を順番に一つずつ取り出す仕組みを提供するプログラミング概念です。

イテレータ(Iterator)とは、リスト・配列集合といったデータの集まりから、要素順番に取り出すための共通インターフェースを提供するプログラミング概念です。「反復子」とも訳されます。

イテレータが提供する基本操作は主に次の2つです。

  • 次の要素を取得する(next / __next__):呼び出すたびに次の要素を返します。
  • 次の要素があるか確認する(hasNext / StopIteration):要素が残っているかを判定します。

イテレータのメリットは、データ構造の内部実装を隠蔽したまま要素にアクセスできる点にあります。配列でもリンクリストでもデータベースの検索結果でも、イテレータを通じると同じコードで扱えます。また、全要素をメモリに読み込まず必要な分だけ取り出す「遅延評価」を実現できるため、大量データの処理に適しています。

Pythonではfor文がイテレータプロトコルを内部で使用しており、__iter____next__メソッドを実装することでカスタムイテレータを作れます。JavaのIteratorインターフェース、C++のイテレータ、JavaScriptのSymbol.iteratorなども同様の概念です。

デザインパターンでは「Iteratorパターン」として体系化され、コレクションの走査ロジックをクラスから切り離す設計に活用されます。

使い方・例文

Pythonでfor item in my_list:と書くとき、裏側ではイテレータが動作して要素を一つずつ返しています。大量のログファイルを1行ずつ処理する際も、イテレータにより全行をメモリに読み込まずに済みます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語