DartのList(リスト)型

Flutter
スポンサーリンク

Dart言語のList型についての色々をまとめる

Listとは

Flutterでアプリ開発するには必須といってもいいDart言語のListについてのいろいろをメモとしてまとめます。

 

まず、一言で表すと

Listとは他の言語での配列(Array)です

 

細かい部分は違うものの使い方は完全に配列と同じです。

 

FlutterではUIを全てコードで書いていくので、もちろん良く使われるようなListViewのようなUIも全てコードで書いていく必要があります。

任意のデータを扱う以外にも、そういうUIの生成にも使うのでListの使い方は必須知識です。

といっても他の言語と劇的に違うわけではないのでプログラミング経験者なら戸惑うことはほとんどないと思います。

 

定義の仕方やインデックス指定、List操作に便利なメソッドをいくつか紹介します。

定義の仕方

可変長と固定長

Listは定義の仕方によってそのListの長さが変わるのか(可変長)、変わらないのか(固定長)を決めることができます。

普通は可変長のListを定義することが多いとは思いますが、Listの長さを変えたくない場合や、変わる必要のない場合は長さが変わることのない固定長のListの定義ができます。

また、1つのListに入れることのできるデータの型は同一でないとダメです。(intなら全てint、Stringなら全てStringみたいに)

 

まずは可変長のListの定義の種類とその出力結果をまとめます。

 

Listクラスのメソッド.generateを使って長いListを素早く定義することもできます。下の例では完結に見えるために短いListの定義ですが、普通このくらいならメソッド使わず自分で打ちますよね笑

 

次に固定長のListの定義とその出力をまとめます。.filledメソッドを使う場合もまとめて表示します。

 

ListのList(二次元配列)

Listの中にListを入れて定義することもできます。

 

インデックス指定

他の言語同様下のようにインデックスを指定してList内の任意のデータを取得することができます。インデックスというのは要素左から順番につけられた番号で0から始まります。つまり指定できるインデックスは0から(要素の数-1)の数までということです。

変数名[インデックス]

インデックスは左から順に 0 1 2 3 ・・・と続く

 

便利なメソッド

ListクラスにはListを扱うための便利なメソッドが結構たくさんあります。

覚える必要はありませんが、「こんなのあるんだー」というくらいでさらっと読んでおくといざ「Listでこんな処理がしたい!」となった時に役に立つと思います。

.length

これはメソッドではなくプロパティですがListを扱う上で非常によく使います。

Listの要素の長さを返してくれます。

.add

Listの最後の要素の後に新しい要素を加えます。(*1)しかし固定長で定義している場合はエラーになります。

引数:加える新しい要素

.insert

任意のインデックス位置に新しい要素を加えます。

引数:加える要素のインデックス、加える新しい要素

.removeAt

任意のインデックスにある要素を削除します。

引数:削除する要素のインデックス

.indexOf

任意の要素がListの中にあればそのインデックスを、なければ-1を返します。

もし同じ要素がListの中に複数ある場合は第二引数にその要素だけ数えた順番で指定できます。

引数:任意の要素、(その要素自体の順番)

.shuffle

要素をシャッフルします。

.forEach

各要素を順番に取り出し、任意の処理を行います。

 

この他にも便利なメソッドがたくさん用意されています。

もちろん公式のドキュメントには用意されているプロパティ、メソッドが全て書いてあります。気になる方は見て見てください。

List class - dart:core library - Dart API
API docs for the List class from the dart:core library, for the Dart programming language.

 

最後に

今回は自分なりにDartのList型についてかなり丁寧にまとめてました。

実際にアプリで使う際には必要なデータをうまくまとめたり、ListViewなどのWidgetでリストのUI生成に使ったりします。

近いうちに基本的なListViewの生成の仕方などを紹介しようと思います。

コメント