libro
www.tuyano.com
初心者のためのDart 2入門

コレクションについて (3/5)

作成:2018-03-24 09:22
更新:2018-03-24 09:22

■テキストで管理する「マップ」

リストは、インデックスという番号で値を並べて整理します。が、数字ではなく、もう少しわかりやすいもので値を整理したい、という場合もあるでしょう。例えば、名前をつけて整理するなどですね。

このような場合に用いられるのが「マップ」です。マップは、「キー」と呼ばれるものを使って値を管理します。

・マップを作る
変数 = { キー1 : 値1 , キー2 : 値2 , …… };

マップでは、すべての値はキーとセットで用意されます。キーには、テキストや数字などの基本的な値だけでなく、あらゆる値を利用することができます。

マップから値を取り出したり、値を設定する場合も、キーを利用します。これは、新たに値を追加する際にも利用できます。リストと違い、マップでは、存在しないキーを指定して値を代入すると、そのキーが新たに作成され値が保管されます。

・値を得る
変数 = マップ [ キー ];

・値を設定する
マップ [ キー ] = 値 ;

では、マップの簡単な利用例を下に挙げておきましょう。これはリストのサンプルを少しアレンジしたものです。保管されているキーと値を順に表示した後、合計と平均を表示します。

マップは、キーと値という2つの要素がセットになっているため、そのままではfor-inで繰り返し処理できません。が、マップからキーだけ、あるいは値だけをリストとして取り出すことができるので、これらをfor-inで繰り返し処理できます。

・キーをまとめて得る
マップ . keys

・値をまとめて得る
マップ . values

この他にも、キーとマップをセットで取り出すものや繰り返し処理するための機能など、マップには多くの機能が搭載されています。が、とりあえず「値のやり取り」の方法がわかれば、マップは利用できるでしょう。

下に簡単な利用例を挙げておきます。先のリストのサンプルを少し修正したもので、キーと値をすべて表示し、その合計と平均を表示します。

ここでは、マップarrを作成し、そのkeysでキーをまとめて取り出してfor-inによる繰り返しを行なっています。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

void main() {
  var arr = {'国語':98, '数学':76, '英語':54, '理科':68, '社会':79};
  var total = 0;
  for (var k in arr.keys) {
    print('${k} : ${arr[k]}');
    total += arr[k];
  }
  print('合計:${total}. 平均:${total ~/ arr.length}.');
}
※関連コンテンツ

「初心者のためのDart 2入門」に戻る