本文へスキップ

ハッシュテーブルとは?

はっしゅてーぶる

ハッシュテーブルとは、キーと値のペアを効率よく格納・検索できるデータ構造で、ハッシュ関数を使って格納位置を決定します。

ハッシュテーブル(ハッシュマップとも呼ばれる)とは、任意のキーに対してハッシュ関数を適用し、得られたハッシュ値を配列インデックスとして使うことでデータを格納・検索するデータ構造です。理想的な条件下では、挿入・検索・削除の各操作をほぼO(1)(定数時間)で実行できるため、高速なデータアクセスが求められる場面で広く活用されます。

ハッシュテーブルの基本的な仕組みは次の通りです。

  1. キー(例:文字列「apple」)をハッシュ関数に入力する
  2. 得られた整数値を配列のサイズで割った余りを格納位置(バケット)として使う
  3. そのバケットにキーと値のペアを保存する
異なるキーが同じバケットに割り当てられる「衝突(コリジョン)」が起きる場合があり、これをチェーン法(各バケットにリストを持つ)やオープンアドレス法(空きバケットを探す)で解決します。

多くのプログラミング言語でハッシュテーブルは標準的なコレクション型として提供されています。JavaのHashMap、PythonのDict、JavaScriptのObjectやMap、RubyのHashなどがその例です。

ハッシュテーブルはデータベースのインデックス、キャッシュシステム、記号表(コンパイラ)、重複チェックなど、幅広い場面で利用されています。ハッシュ関数の品質が性能を大きく左右するため、均等に分散するハッシュ関数の設計が重要です。

使い方・例文

例えば、Pythonの辞書型(dict)は内部的にハッシュテーブルで実装されており、「user[『名前』] = 『田中』」のようにキーで値を瞬時に取得・設定できます。大量の単語の出現回数を集計する処理でも、ハッシュテーブルが高速な実装を可能にします。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語