配列
Array
複数のデータを一つのグループにまとめ、「番号(添字/インデックス)」を割り振って一列に並べて管理する仕組み。バラバラなデータを「一つの箱」に整理して入れることで、大量の情報を効率よく扱えるようになります。
🐾 猫で例えると?
茶トラとアメショが、ハンモックの中に隙間なく並んでいます。「ハンモック」という一つの大きな箱の中に、「猫」という個別のデータが順番に収まっている状態、これがまさに配列です。
配列の中のデータには番号(インデックス)がついているので、「ハンモックの0番目は茶トラ」「1番目はアメショ」というように、名前を呼ばなくても番号だけで特定できるのが特徴です。
💻 プログラミングにおける「配列」とは?
配列は、複数の値を順番に並べて扱うための「データの入れ物」です。変数が「1つの値を入れる箱」だとすれば、配列は「仕切りのついた大きな引き出し」のようなイメージです。
もし配列がない世界で100匹の猫の名前を管理しようとすると、cat1, cat2...と100個の変数を作る必要がありますが、配列を使えば cats という一つの名前で全員をまとめて扱うことができます。
⚠️ 配列の仕組みと注意点
配列を扱うときは、要素の個数と「番号の数え方」を区別します。
0から始まるインデックス
JavaScript、C、Pythonのリストなどでは、最初の要素を0で指定します。ただし言語やデータ構造によって規則は異なります。この記事ではJavaScriptのArrayを例にします。
const catTeam = ["茶トラ", "アメショ", "三毛"];
console.log(catTeam[0]); // 最初の要素:茶トラ
console.log(catTeam.length); // 3
console.log(catTeam[3]); // 存在しない要素:undefined
for (const cat of catTeam) {
console.log(cat); // 順番に取り出す
} 繰り返し処理なら、変数名を個別に並べずに全要素へ同じ処理を適用できます。ただし要素数や処理内容が増えれば時間もかかります。「配列なら大量の処理が一瞬で終わる」という意味ではありません。
🛠️ 配列を賢く使うためのポイント
配列は非常に便利ですが、現場では以下の点に気をつけて活用されます。
- 範囲外の動作は言語で違う: この例のcatTeam[3]はJavaScriptではundefinedです。PythonのリストならIndexError、Cで領域外を読むと未定義動作になり得ます。同じ配列の説明でも、使う言語を確認します。
- 順番と識別子を区別: JavaScriptのspliceで途中を削除すると後ろの添字は変わります。一方deleteは穴を残し、lengthも減りません。ずっと同じ猫を追跡したい場合は、位置の番号とは別にIDを持たせます。
- 多次元配列: 配列の中にさらに配列を入れることで、「縦・横」の表のような形式でデータを管理することもできます。
並んだ猫たちに順番があるように、配列では位置を使って要素を取り出せます。先頭の番号と要素数を混同せず、空の配列や末尾を扱う場面も確認すると、範囲外へのアクセスに気づきやすくなります。