リストは、インデックスという番号で値を並べて整理します。が、数字ではなく、もう少しわかりやすいもので値を整理したい、という場合もあるでしょう。例えば、名前をつけて整理するなどですね。
このような場合に用いられるのが「
マップ」です。マップは、「
キー」と呼ばれるものを使って値を管理します。
・マップを作る変数 = { キー1 : 値1 , キー2 : 値2 , …… };
マップでは、すべての値はキーとセットで用意されます。キーには、テキストや数字などの基本的な値だけでなく、あらゆる値を利用することができます。
マップから値を取り出したり、値を設定する場合も、キーを利用します。これは、新たに値を追加する際にも利用できます。リストと違い、マップでは、存在しないキーを指定して値を代入すると、そのキーが新たに作成され値が保管されます。
・値を得る変数 = マップ [ キー ];
・値を設定するマップ [ キー ] = 値 ;
では、マップの簡単な利用例を下に挙げておきましょう。これはリストのサンプルを少しアレンジしたものです。保管されているキーと値を順に表示した後、合計と平均を表示します。
マップは、キーと値という2つの要素がセットになっているため、そのままでは
for-inで繰り返し処理できません。が、マップからキーだけ、あるいは値だけをリストとして取り出すことができるので、これらをfor-inで繰り返し処理できます。
・キーをまとめて得るマップ . keys
・値をまとめて得るマップ . values
この他にも、キーとマップをセットで取り出すものや繰り返し処理するための機能など、マップには多くの機能が搭載されています。が、とりあえず「値のやり取り」の方法がわかれば、マップは利用できるでしょう。
下に簡単な利用例を挙げておきます。先のリストのサンプルを少し修正したもので、キーと値をすべて表示し、その合計と平均を表示します。
ここでは、マップ
arrを作成し、その
keysでキーをまとめて取り出して
for-inによる繰り返しを行なっています。