配列とは
配列(Array)とは、複数のデータをコンピュータのメモリ上に一列に並べて管理する最も基本的なデータ構造です。配列内の個々のデータを「要素」と呼び、各要素には「0」から始まる「インデックス(添え字)」という番号が割り当てられます。メモリ上で連続した領域に保存されるため、インデックスを指定するだけで、目的のデータへ瞬時にアクセスできる特徴を持っています。
具体例
1週間の気温データ(月曜〜日曜までの7日分)を一つの変数にまとめて管理し、特定の曜日の気温を取り出すようなケースです。
// 7日分の気温を配列で管理する例
let weeklyTemperatures = [22.5, 24.0, 23.8, 25.1, 26.0, 24.5, 23.0];
// 水曜日(インデックス2)の気温を表示する
console.log(weeklyTemperatures[2]); // 出力: 23.8もう少し詳しく
配列(Array)は、同一のデータ型のデータをメモリ上の連続したアドレス領域に順番に並べて配置するデータ構造です。配列の最大の強みは、インデックス(添え字)を用いて各要素にアクセスする際、メモリの先頭アドレスから『先頭アドレス + (データ型のサイズ * インデックス)』という単純な計算式で一瞬で位置を特定できるため、どの要素であってもアクセスにかかる時間(計算量)が常に一定である(O(1)である)点にあります。一方で、初期化時に配列全体のサイズ(要素数)を固定的に確保する必要がある「静的配列」が基本であり、途中でサイズを変更することが困難です。また、配列の途中(例えば先頭や中間位置)にデータを挿入したり削除したりする場合、それ以降にあるすべてのデータをメモリ上で1マスずつ後ろへずらしたり(挿入時)、前へ詰めたり(削除時)する必要があるため、データの移動処理(O(N))が発生し、操作に時間がかかるという弱点があります。
試験でのポイント
試験では、配列のインデックスが「0」から始まることや、多次元配列(2次元配列など)における要素の並び順とメモリ配置(行優先・列優先)に関する計算問題が出題されます。また、配列の「ランダムアクセス(インデックスによる直接アクセス)は非常に高速である(O(1))」というメリットと、「データの挿入や削除には要素の移動が必要なため遅い(O(N))」というデメリットを、次に説明する「リスト(連結リスト)」などの他のデータ構造と対比しながら整理しておくことが不可欠です。
関連する用語
データ構造(データを効率よく扱うための整理された仕組み)、インデックス(配列内の要素の位置を指定する整数値)、連結リスト(データ同士をポインタで繋いで管理するデータ構造)。