IT基礎

データ構造

初級

読み方:でーたこうぞう|英語:Data Structure

データを効率よく管理するための整理方法で、配列、オブジェクト、リストなどがあるよ。

やさしい説明

データ構造とは、データを効率的に管理するための「入れ物の形」です。用途に応じて最適な入れ物を選ぶことで、処理が速くなります。

本棚に例えると、「著者名順に並べる」「ジャンルごとに分ける」「最近読んだ順に積む」——並べ方(データ構造)によって探しやすさが変わります。

配列、オブジェクト(Map)、Set、スタック、キューなどが代表的なデータ構造です。JavaScriptでは配列とオブジェクトを最もよく使います。

具体例・使い方

// 配列: 順番が重要なデータ
const queue = ["太郎", "花子", "次郎"]; // 待ち行列

// オブジェクト(Map): キーで高速検索
const users = { "user1": "太郎", "user2": "花子" };

// Set: 重複を排除
const unique = new Set([1, 2, 2, 3]); // {1, 2, 3}

主なデータ構造と使いどころ

  • 配列(Array) — 順番が重要なデータの列。インデックスで高速アクセス。リスト・履歴・待ち行列などに使う
  • オブジェクト(Object / Map) — キーと値のペア。キーで高速検索できる。ユーザー情報・設定値の管理などに使う
  • Set — 重複なしのコレクション。「すでに含まれているか」の確認が高速。タグ・ユニークID管理などに使う
  • スタック(Stack) — 後入れ先出し(LIFO)。「元に戻す(Undo)」機能・関数の呼び出し管理などに使う
  • キュー(Queue) — 先入れ先出し(FIFO)。タスクの順番待ち・メッセージキューなどに使う
  • ツリー(Tree) — 階層構造。HTMLのDOM・ファイルシステム・検索エンジンのインデックスなどに使う

JavaScriptで使える主なデータ構造

// スタック(配列で実装)
const stack = [];
stack.push("A");    // 追加
stack.push("B");
stack.pop();        // "B" を取り出す(後入れ先出し)

// キュー(配列で実装)
const queue = [];
queue.push("A");    // 末尾に追加
queue.push("B");
queue.shift();      // "A" を取り出す(先入れ先出し)

// Set(重複なしコレクション)
const tags = new Set(["JS", "HTML", "JS"]);
console.log([...tags]); // ["JS", "HTML"]

// Map(任意のキーで管理)
const map = new Map();
map.set("user1", { name: "太郎", score: 95 });
map.get("user1"); // { name: "太郎", score: 95 }

データ構造の選び方

  • 順番を保持したい → 配列
  • キーで素早く検索したい → オブジェクト・Map
  • 重複を排除したい → Set
  • 後から追加したものを先に処理したい → スタック
  • 追加した順番に処理したい → キュー

初心者のうちは配列とオブジェクトを使いこなせれば十分です。スタック・キュー・ツリーは配列やオブジェクトを組み合わせて実装でき、必要になったときに学ぶので大丈夫です。

間違いやすいポイント

❌ すべてを配列で管理する

キーで検索するならオブジェクト・Map、重複を排除するならSet、順番が重要なら配列など、用途に応じて使い分けましょう。適切なデータ構造を選ぶだけでコードがシンプルになり、処理も速くなります。

関連用語

  • アルゴリズム — データ構造と組み合わせて効率的な処理を実現する
  • 配列 — 最も基本的なデータ構造
  • オブジェクト — キーと値でデータを管理するデータ構造

📖 関連レッスン

レッスンを見る →

関連ブログ記事

❓ 関連するQ&A