【Flutter/Dart】Mapの基本的な使い方

Map
スポンサーリンク

Mapとは?

Mapを使えば、value(データ)にkey(valueが格納される場所の名前)を紐付けて格納し、紐づけられたvalueを1つの固まり(コレクション)として操作できます。また収納したvalueを後で置き換えたり、追加したり、削除したりと自由にvalueを操作できます。

上のイラストは、3つのvalueがそれぞれkeyで紐づけられているMapをイメージしたものです。リンゴのイラスト(value)は、「リンゴ」のkeyで紐づけられています。よってMapから格納されたリンゴのイラストを取得するには「リンゴ」のkeyを使って取得します。

Mapの宣言

空のMapの場合

//宣言
Map<K, V> Map名 = {}; //空のMap

上のようにMapを宣言します。「K」にkeyの型、「V」に格納するvalueの型を代入します。

//例
Map<String, int> numbers = {}; //空のMap

>> 【Dart】static変数とdynamic変数の使い方|型と宣言

初期値をMapに与える場合

//例
Map<String, int> ages = {
  'Alex': 18,
  'Ben': 15,
  'Charlie': 25,
};

初期値を与える場合は、上のようにMapを宣言します。keyとvalueを「:」で紐付けます。

valueを取得

//取得
List名[key];

宣言したMapのvalueを取得するには、keyを使います。

//例
Map<String, int> ages = {
  'Alex': 18,
  'Ben': 15,
  'Charlie': 25,
};
print(ages['Alex']); // 18 が出力

valueの置き換え

//置き換え
Map名[key] = value;

Mapにあるvalueを置き換えるにはindexを使います。

//例
Map<String, int> ages = {
  'Alex': 18,
  'Ben': 15,
  'Charlie': 25,
};

ages['Alex'] = 100;
print(ages['Alex']); // 100 が出力

基本となるプロパティ

  • isEmpty:valueが無い場合はtrue/ある場合はfalseを戻り値としてreturn
  • length:Mapのkey/valueのペアの数を戻り値としてreturn

>> 【Dart】関数の使い方|定義・戻り値・引数・キーワード引数・アロー関数

isEmpty

Map<String, int> ages = {
  'Alex': 18,
  'Ben': 15,
  'Charlie': 25,
};
print(ages.isEmpty); // false が出力

length

Map<String, int> ages = {
  'Alex': 18,
  'Ben': 15,
  'Charly': 25,
};
print(ages.length); // 3 が出力

基本となるメソッド

  • addAll(Map型のデータ):Mapに新しいMap型のvalueを追加
  • remove(key):指定したkeyのvalueをMapから削除
  • clear():Mapのvalueを全て削除

>> 【Dart】関数の使い方|定義・戻り値・引数・キーワード引数・アロー関数

addAll(Map<K, V> value)

Map<String, int> ages = {
  'Alex': 18,
  'Ben': 15,
  'Charly': 25,
};

Map<String, int> Dakota = {'Dakota':24}; //追加する新しいMap

ages.addAll(Dakota);
print(ages); //{Alex: 100, Ben: 15, Charlie: 25, Dakota: 24} が出力
}

remove()

Map<String, int> ages = {
  'Alex': 18,
  'Ben': 15,
  'Charly': 25,
};

ages.remove('Alex');
print(ages); //{Ben: 15, Charlie: 25} が出力
}

clear()

Map<String, int> ages = {
  'Alex': 18,
  'Ben': 15,
  'Charly': 25,
};

ages.clear();
print(ages); //{} が出力
}
タイトルとURLをコピーしました