【Dart】List の使い方(宣言、プロパティ、メソッド) | ヒヨコ プログラミング(ヒヨプロ)

【Dart】List の使い方(宣言、プロパティ、メソッド)

Dart

配列の一つである List について、宣言の仕方から List のプロパティ、追加や削除といった様々な List の操作方法(メソッド)まで紹介します。

List の宣言

宣言の基本の形は、以下のようになります。

List<型> 変数名 = <型>[];

// 例
List<int> values = <int>[];

型がどこかから分かれば、型推論されるので、以下のように宣言することもできます。

// 型推論で宣言①
List<int> values = [];

// 型推論で宣言②
List values = <int>[];

以下のように、宣言と同時に初期化もできます。
初期化されている場合は、List の要素から型推論が可能です。

// 基本の形で宣言と初期化
List<int> values = <int>[0, 1, 2, 3];

// 型推論で宣言と初期化①
List values = [0, 1, 2, 3];

// 型推論で宣言と初期化②
var values = [0, 1, 2, 3];

以下のように、List の中に List を入れ込んで、多次元配列にすることもできます。

var chars = [
  ['0', '1', '2', '3'],
  ['a', 'b', 'c', 'd'],
  ['A', 'B', 'C', 'D'],
];

要素の取得

List の要素を取得するには、[ ]の中に取得したい要素の位置(インデックス)を指定します。

// 基本の形
変数名[インデックス]

// 使用例
print(values[0]);    // values の0番目の要素である 0 が表示
print(chars[2][3]);  // chars の2番目の要素(3行目)の0から数えて3番目の要素である D が表示

List のプロパティ

List のプロパティを参照することで、様々な情報を取得することができます。
以下に代表的なプロパティを示します。

var values = [0, 1, 2, 3];

// 最初の要素を取得
print(values.first);    // values の最初の要素である 0 が表示

// 最後の要素を取得
print(values.last);     // values の最後の要素である 3 が表示

// 要素の数を取得
print(values.length);   // values に入っている要素の数である 4 が表示

// List が空か判定
print(values.isEmpty);  // values は空ではないので false が表示

他のプロパティが気になる方は、以下リンクをご参照ください。

List のメソッド

List に用意されているメソッドで、List に要素を追加するなど様々な操作を行うことができます。

メソッドを使うときは、以下の形が基本です。

変数名.メソッド名(引数, …)

List に要素を追加

List の末尾に要素を追加するときは、add を使用します。
引数に追加する要素を指定します。

var values = [0, 1, 2, 3];

values.add(4);

print(values);  // [0, 1, 2, 3, 4] が表示

List の末尾に List を追加するときは、addAll を使用します。
引数に追加する List を指定します。

var values1 = [0, 1, 2, 3];
var values2 = [4, 5, 6, 7];

values1.addAll(values2);

print(values1);  // [0, 1, 2, 3, 4, 5, 6, 7] が表示

List の指定した位置に要素を追加するときは、insert を使用します。
第一引数に追加する位置、第二引数に追加する要素を指定します。

var values = [0, 1, 2, 3];

values.insert(2, 100);

print(values);  // [0, 1, 100, 2, 3] が表示

List の指定した位置に List を追加するときは、insertAll を使用します。
第一引数に追加する位置、第二引数に追加する List を指定します。

var values1 = [0, 1, 2, 3];
var values2 = [4, 5, 6, 7];

values1.insertAll(2, values2);

print(values1);  // [0, 1, 4, 5, 6, 7, 2, 3] が表示

List から要素を削除

List から指定した値の要素を削除したいときは、remove を使用します。
引数に削除する値を指定します。List に指定した値を持つ要素が複数ある場合は、最初の要素のみ削除されます。

var values = [10, 11, 12, 13];

values.remove(12);

print(values);  // [10, 11, 13] が表示

List から指定した位置にある要素を削除するときは、removeAt を使用します。
引数に削除する位置を指定します。

var values = [10, 11, 12, 13];

values.removeAt(2);

print(values);  // [10, 11, 13] が表示

List の最後の要素を削除するときは、removeLast を使用します。

var values = [10, 11, 12, 13];

values.removeLast();

print(values);  // [10, 11, 12] が表示

List から指定した範囲にある要素を削除するときは、removeRange を使用します。
第一引数に削除を開始する位置、第二引数に削除を終了する位置を指定します。

var values = [10, 11, 12, 13];

values.removeRange(1, 3);

print(values);  // [10] が表示

List から指定した条件を満たす要素を削除したいときは、removeWhere を使用します。
引数に条件を指定します。

var values = [10, 11, 12, 13];

values.removeWhere((int value) => value > 10);

print(values);  // [10] が表示

List の編集

List の要素を並び替えるときは、sort を使用します。引数に並び替え条件を指定します。

var values = [12, 10, 13, 11];

values.sort((a, b) => b.compareTo(a));

print(values);  // [13, 12, 11, 10] が表示

List の要素をランダムに並び替えるときは、shuffle を使用します。

var values = [10, 11, 12, 13];

values.shuffle();

print(values);  // [12, 11, 13, 10] が表示(一例)

List の指定した範囲を違う List に置き換えるときは、replaceRange を使用します。
第一引数に置き換え範囲の開始位置、第二引数に置き換え範囲の終了位置、第三引数に置き換える List を指定します。

var values = [10, 11, 12, 13];

values.replaceRange(1, 3, [100, 1000]);

print(values);  // [10, 100, 1000] が表示

List の検索

List に指定した値がどこの位置にあるか知りたいときは、indexOf を使用します。
引数に位置を知りたい値を指定します。値が見つからなかったときは、-1 を返します。

var values = [10, 11, 12, 13];

print(values.indexOf(12));   // 2 が表示
print(values.indexOf(100));  // -1 が表示

List に指定した値が後ろから検索してどこの位置にあるか知りたいときは、lastIndexOf を使用します。
第一引数に位置を知りたい値を指定します。第二引数に検索を開始する位置を指定することもできます。値が見つからなかったときは、-1 を返します。

var values = [10, 11, 12, 13, 12];

print(values.lastIndexOf(12));     // 4 が表示
print(values.lastIndexOf(12, 2));  // 2 が表示
print(values.lastIndexOf(100));    // -1 が表示

List に指定した値が含まれているか調べるときは、contains を使用します。
引数に含まれているか調べたい値を指定します。

var values = [10, 11, 12, 13];

print(values.contains(12));   // true が表示
print(values.contains(100));  // false が表示

その他

ここまで紹介したもの以外にもメソッドはあります。詳しくは以下のリンクをご参照ください。

まとめ

Dart の List について使い方を紹介しました!

  • List の宣言では、型推論が可能です。
  • プロパティを参照することで、List の要素数などの情報を取得できます。
  • メソッドを使用することで、List に対して要素を追加するなど様々な操作が可能です。

以上で、【Dart】List の使い方 まとめ は終わりです。

参考

コメント

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