すらぼうの開発ノート

モバイルアプリエンジニアのメモ

【Flutter / Dart】リスト(List)型データの操作まとめ

本エントリではList型データの操作(追加、削除、フィルター...)について説明する。


Listとは

ListIterableを継承したクラスで、複数の要素を格納できる順序ありのデータ型。

api.dart.dev

説明用データ

本エントリではListについて以下の_numbersを例に要素を追加、削除する方法を説明する。

追加

add()

add()の引数に指定した要素を末尾に追加する。

addAll()

addAll()の引数に指定したIterableクラスの要素を末尾に追加する。 具体的にはListMapSetクラスのデータ。

fillRange()

fillRange()は指定したインデックスに複数の要素を挿入できる。 第一引数に開始インデックス、第二引数に終了インデックス、第三引数に挿入したい要素を指定する。

insert()

insertは指定の位置に要素を挿入できる。 第一引数に挿入するインデックス、第二引数に挿入したい要素を指定する。

insertAll()

insertAll()は指定の位置にIterableクラスの要素を挿入する。 第一引数に挿入するインデックス、第二引数に挿入するIterable型の要素を指定する。

削除

clear()

clear()は要素を全て削除する。

remove()

remove()は引数に指定した要素を削除する。 複数個同じ要素がリストに存在する場合、その中の先頭の要素が削除される。 またリストに含まれていない要素を引数に指定した場合、何も削除されない。

removeAt()

removeAt()は指定したインデックスの要素を削除する。 引数にはインデックスを指定する。

removeLast()

removeLast()はリストの末尾の要素を削除する。

removeRange()

``removeRange```はリストから複数の要素を削除できる。 第一引数で削除したい範囲の開始インデックス、第二引数で終了インデックスを指定する。

removeWhere()

removeWhere()は条件を指定して要素を削除できる。 引数にはコールバック関数を渡す。コールバック関数の引数にはインデックスが渡され、戻り値がtrueになる要素を削除する。 上記のコードではインデックスが偶数の要素が削除される。

フィルター

where()

where()は特定の条件を満たした要素のみを含むIterable型データを生成する。

引数に条件式となるコールバック関数を渡す。 この時コールバック関数の戻り値はbool型にする必要がある。 そして戻り値がtrueになる要素のみが残る。

上記のコードの場合、

element % 3 == 0

trueとなる要素のみが残るIterableデータが生成される。 その後toList()List型のデータを生成している。