世界最大級のオンライン学習サービス「Udemy(ユーデミー)」とは?

【Flutter/Dart】Map(連想配列)の値を更新する

Flutterのプログラミング言語(Dart言語)でMapの値を更新する方法を紹介します。

Mapの値を更新する3つの方法を紹介していきます。

目次

方法1:Map[Key] = NewValue

1つ目の方法は次のように「[]」を使用して値を更新する方法です。

Map[キー] = 新しい値;

Mapに指定したキーが存在する場合は値が更新され、キーが存在しない場合は新しい要素が追加されます。

var myMap = {'りんご': '赤', 'バナナ': '黄', 'グレープ': '紫'};

//キーが存在する場合
myMap['りんご'] = '黄緑';
print(myMap); //{りんご: 黄緑, バナナ: 黄, グレープ: 紫}

//キーが存在しない場合
myMap['マスカット'] = '黄緑';
print(myMap); // {りんご: 黄緑, バナナ: 黄, グレープ: 紫, マスカット: 黄緑}

方法2:update()で1つの要素を更新

Mapの1つの値のみ更新したい場合はupdateメソッドを使用します。

第一引数に更新したい値のキー、第二引数に新しい値を渡します。

Map.update(キー, (value) => 新しい値);

指定したキーが存在する場合は値が更新されますが、キーが存在しない場合は何も起きません。

var myMap = {'りんご': '赤', 'バナナ': '黄', 'グレープ': '紫'};

myMap.update('りんご', (value) => '黄緑');
print(myMap); //{りんご: 黄緑, バナナ: 黄, グレープ: 紫}

キーが存在しない場合に値を追加したい場合は「update()」の「ifAbsentプロパティ」を使用します。

myMap.update(
  'マスカット',
  (value) => '黄緑',
  ifAbsent: () => 'New黄緑',
);
print(myMap); //{りんご: 黄緑, バナナ: 黄, グレープ: 紫, マスカット: New黄緑}

方法3:updateAll()で値を一括更新

Mapの値を一括で更新したい場合はupdateAllメソッドを使用します。

Map.updateAll((key, value) => 新しい値);

updateAllメソッドでは次のように一括で更新させたい処理を書きます。

var myMap = {'a': 'apple', 'b': 'banana', 'c': 'cherry'};
myMap.updateAll((key, value) => value.toUpperCase());
print(myMap); //{a: APPLE, b: BANANA, c: CHERRY}

以上です。

合わせて読みたい

参考サイト

目次