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、順番が重要なら配列など、用途に応じて使い分けましょう。適切なデータ構造を選ぶだけでコードがシンプルになり、処理も速くなります。
関連用語
📖 関連レッスン
レッスンを見る →