Dart ListクラスtoList()メソッド

Dar言語StreamクラスtoSet()メソッドDart

Dart ListクラスのtoList()メソッドについてメモ書き。

toList()はイテラブル型要素を配列型にするメソッド。
配列は固定長、可変長をオプション引数の「growable」で指定できる。
growableはbool型でtrueが可変長、falseが固定長となる。デフォルトはtrue。

コーディングでtoList()メソッドを確認。
Map型のkeyを配列にしてみる。

void main() {
  try {
    final mapTest = <String, int>{
      "Apple": 0,
      "Orange1": 1,
      "Banana": 2,
      "grape": 3,
      "Orange2": 4
    };
    final key = mapTest.keys.toList();
    print(key);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。

[Apple, Orange1, Banana, grape, Orange2]

デフォルトは可変長なので、末尾の要素を削除してみる。

void main() {
  try {
    final mapTest = <String, int>{
      "Apple": 0,
      "Orange1": 1,
      "Banana": 2,
      "grape": 3,
      "Orange2": 4
    };
    final key = mapTest.keys.toList();
    key.removeLast();
    print(key);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。
配列末尾が削除されている。

[Apple, Orange1, Banana, grape]

次はgrowableで固定長(false)を指定する。

void main() {
  try {
    final mapTest = <String, int>{
      "Apple": 0,
      "Orange1": 1,
      "Banana": 2,
      "grape": 3,
      "Orange2": 4
    };
    final key = mapTest.keys.toList(growable: false);
    key.removeLast();
    print(key);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。
固定長なので、配列要素を削除すると例外を返す。

Unsupported operation: Cannot remove from a fixed-length list

最後はmap型の値を配列にする。

void main() {
  try {
    final mapTest = <String, int>{
      "Apple": 0,
      "Orange1": 1,
      "Banana": 2,
      "grape": 3,
      "Orange2": 4
    };
    final value = mapTest.values.toList(growable: false);
    print(value);
  } catch (e) {
    print(e.toString());
  }
}

実行結果。
Map型の値が配列として返る。

[0, 1, 2, 3, 4]

コメント

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