DartのasMap()メソッドの使い方

Flutter/Dart

この記事では、DartのasMap()メソッドの使い方について書いていきます。

サンプル

void main() {
  List<String> fruits = ['りんご', 'ぶどう', 'みかん'];

  // ListをMapに変換
  Map<int, String> fruitMap = fruits.asMap();

  print(fruitMap); 
  // 出力: {0: りんご, 1: ぶどう, 2: みかん}
}

解説

asMap() メソッドは、List(配列)を Map(連想配列)に変換するためのメソッドです。変換すると、元のListの「インデックス(添え字)」がMapのキーに、「要素」がMapの値になります。

よく使う例

Flutterでよく使う例は、map ループ処理の中でインデックス(番目)も一緒に使いたい場合だと思います。

そのような場合は以下を参照してください。

void main() {
  List<String> users = ['佐藤', '鈴木', '田中'];

  // asMap() して entries を使うことで、key(インデックス) と value(要素) を同時に扱える
  List<String> textList = users.asMap().entries.map((entry) {
    int index = entry.key;
    String name = entry.value;
    
    return '${index + 1}番目のユーザーは$nameさんです';
  }).toList();

  print(textList);
  // 出力: [1番目のユーザーは佐藤さんです, 2番目のユーザーは鈴木さんです, 3番目のユーザーは田中さんです]
}

まとめ

  • List.asMap() は、インデックスをキーにしたMapを作る
  • asMap().entries.map(…) の形を覚えておくと、要素と一緒にインデックス(entry.key)が使えて非常に便利
タイトルとURLをコピーしました