記事の内容
この記事では、Dart言語でよく使うList(配列)の基礎的な使い方から応用までを説明します。
簡単なサンプルも書くので、これさえ読めばListの使い方はバッチリです!
配列はどんな時に使うの?
配列とは複数のデータを扱うためのデータ型です。
そのため、実装中に、「同じようなことをしているかも?」と疑問に感じた時は、配列を使うことを検討してみましょう。
以下ような、「値を倍にするコード」を書く時を例にとって説明します。
配列を使ったコードの方が短いですし、新しい値を追加する時にも、配列に値を追加するだけで済みます。
ここがポイント!
- 何度も同じ処理が出てきたら、配列を使うことを考えてみよう
- 配列を使うと処理が短くなります
- 配列を使うと、コードを変更しやすくなります
配列の書き方
では、実際に配列の書き方を見ていきます。
配列を作成する方法には、new Listと、[](角括弧)の2つがあります。
配列に値を格納することで、0から順番に0,1,2という添字(そえじ)が割り振られます。
添字とは、要素番号と考えて下さい。
Listを定義するさいには、String、int、doubleといった型を指定することもできます。
型を指定した場合は、その型以外の値を入れようとすると、エラーが出ます。
ここがポイント!
- 配列は、new Listか、[](角括弧)で作成できる
- 配列に値を格納することで、0から順番に0,1,2という添字が割り振られる
配列の中身の見方と範囲で切り出す(sublist)
配列に要素を追加、取り出し(add, removeLast, insert, removeAt, addAll)
配列に値をいっぺんに入れることもできます。
この例では、配列(List)に入れる型も指定しています。
型を指定しておくことで、他の値を誤って入れることを防ぐことができます。
このエラーは、Stringのリストに数字を入れた時に出たものです。
names.add(1);
多次元配列とは?
多次元配列とは、配列の中に配列が入っている状態のことです。
多次元配列の書き方と中身の見方
Set(重複を許さない配列)とは?
Setとは、重複を許さない配列のようなものです。
ただし、Setに入った値の順序は保証されません。
Setは、Listから作成することもできます。
setを利用して、配列の「積集合」や「差集合」を取り出します。
ListからSetに変換した後で、intersectionやdifferenceを使って、値を取り出しています。
応用編
配列の値を検索(any, every)
配列を結合(from, expand)
Dart 2.3からは、リストの中にリストを展開するスプレッド記法も使えます。
配列の最大値と最小値を求める
配列の値を置換(replaceRange)
配列の値を並び替える(sort, reverse)
配列の値をフィルタリング(map, where, firstWhere, singleWhere)
関数型(whereなどの関数)の便利さを理解しよう
この文字列を「\t」で分割して、100以上の数字だけを「,」だけで連結させてみます。
▼ Map(連想配列)については、この記事でまとめています
-
【Dart入門】Map(連想配列)の基礎から応用までを説明します
目次1 Map(連想配列)とは?2 Map(連想配列)の書き方と中身の確認3 Map(連想配列)の値を変更したり要素を追加する4 Map(連想配列)のkeyで削除する5 Map(連想配列)のマージ6 Mapのkeyでソート7 Mapのval ...