[Dart]Map(マップ)を結合するには?

Dart

どうも、ちょげ(@chogetarou)です。

Mapを結合する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

Mapを結合する方法は、2つあります。

addAll

1つは、addAllメソッドを使う方法です。

具体的には、addAllメソッドで片方のマップをもう片方のマップに追加します。

map1.addAll(map2) //map1にmap2を結合

もし、複数のMapを結合して1つにしたい場合は、「..」を使います。

//map1とmap2を結合した新しいMapを
var merge = {}..addAll(map1)..addAll(map2);

結合するMapで同じキーが存在した場合は、後に追加された方のキーの値が優先されます。

使用例

void main() {
  var numbers1 = {
    'one': 1,
    'two': 2,
    'three': 3,
  };
  
  var numbers2 = {
    'four': 4,
    'five': 5,
    'six': 6,
  };
  
  
  var numbers = {}..addAll(numbers1)..addAll(numbers2);
  print(numbers); //{one: 1, two: 2, three: 3, four: 4, five: 5, six: 6}
  
  
  numbers1.addAll(numbers2);
  print(numbers1); //{one: 1, two: 2, three: 3, four: 4, five: 5, six: 6}
  
}

もう1つは、「…」を使う方法です。

具体的には、「{}」内に結合したいMapを、「…map1」のように記述します。

//map1とmap2を結合
var merge = {
    ...map1,
    ...map2,
}

使用例

void main() {

  var numbers1 = {
    'one': 1,
    'two': 2,
    'three': 3,
  };
  
  var numbers2 = {
    'four': 4,
    'five': 5,
    'six': 6,
  };
  
  var numbers = {
    ...numbers1,
    ...numbers2,
  };
  
  print(numbers); //{one: 1, two: 2, three: 3, four: 4, five: 5, six: 6}
  
}

まとめ

Mapを結合する方法は、次の2つです。

  • addAllメソッドを使う方法
  • 「…」を使う方法

コメント

タイトルとURLをコピーしました