わかりやすく キーバリュー とは
配列では、場所の番号で値を取り出しました(第8回)。でも、番号ではなく名前で探したいときがあります。友だちの電話番号を探すとき「47番目の人」ではなく「ミンス」で探すように、名札ですぐに取り出す方法を見ていきます。
番号のかわりに名札
第8回の配列は一列に並んだ箱で、1番、2番、3番……と場所の番号で値を取り出しました。
でも辞書で単語を引くとき、「325番目の単語」とは考えません。「りんご」を開けば意味が出てきます。
キーと値は、このように名札で探します。
名前を選ぶと、場所の番号を知らなくてもその値がすぐに出ます。
番号を数える必要はありません。
名前さえわかれば、まっすぐその値にたどり着けます。
では、この名札と中身は、どうやって組になっているのでしょうか。
組にする:キーと値
一つのマスは、いつも二つで一組です。名札(キー)と、その中の中身(値)です。
「りんご」(キー)→ 'apple'(値)、「ミンス」(キー)→ '010-1234'(値)という具合です。
キーを呼ぶと、組になった値がついてきます。
キーを値につなぐと、二つが結ばれて「キー → 値」の一組になります。
キーはどこを探すかを決める名前で、値は実際に入っている中身です。
こうした組をたくさん集めたものが辞書です。
では、組が増えたとき、目当てのものをどうやって速く見つけるのでしょうか。
列に並んで探さない
値が千個あっても、キーと値は最初から一つずつなぞったりはしません。
名札を見て、まっすぐそのマスへ行きます。
配列では場所がわからなければ1番から探さなければなりませんが、キーがあれば一度でたどり着けます。これが速さの秘訣です。
左は一つずつ探し、右は名札で一度にたどり着きます。「探す」を押すと、二つのやり方の違いがわかります。
名前さえわかれば、遠回りすることはありません。
だからキーと値は、たくさんの中から一つを速く取り出す仕事にとても強いのです。
最後に、名札には必ず守るべき規則が一つあります。
名札は重ならない
規則は一つです。同じ名札は一度しか使えません。
新しい名札はいくらでも足してかまいませんが、すでにある名札に新しい値を入れると、前の値は消えて新しい値に置き換わります。
新しい名札を入れるとマスが増え、同じ名札をもう一度入れると古い値が新しい値に置き換わります。
名札が重ならないので、「ミンス」と呼んでも迷うことはありません。
いつも正確に一つの値が出てきます。
この単純な組一つが、じつはどこにでも隠れているのです。
どこにでもある組、そしてその先
辞書(単語→意味)、設定(項目→値)、連絡先(名前→番号)、ゲームのかばん(アイテム→個数)は、どれもキーと値です。
情報を整理する、いちばんよくある方法の一つです。
次のレッスンでは、こうした名札を一つのかたまりにまとめて、一つの物のように扱う方法へ進みます。
連絡先、設定、かばんのタブを順に押すと、三つとも同じ「キー → 値」だとわかります。
一列に並んだ配列(第8回)に続いて、名札で探すキーと値も手に入れました。
これで、番号でも名前でも情報を扱えます。
次は、名札をいくつも一つの箱に入れて一つのものにまとめる、オブジェクトです。