【Flutter/Dart】List(配列)の操作方法まとめ!追加/検索/分割/削除/インデックス/ソート
この記事からわかること
- Flutter/Dartで配列を操作する方法
- 追加/検索/分割/削除/インデックスの取得
index
[open]
\ アプリをリリースしました /
- Android Studio:Otter 2 Feature Drop
- Android OS:15以降
- Kotlin:2.2.21
- Xcode:26.0.1
- iOS:26
- dart:6
- Flutter:3.38.3
- Dart:3.10.1
- macOS(M1):Tahoe 26.0.1
Dartで配列(List)に関する情報を取得できるプロパティや操作するメソッドなどをまとめました。
要素数をカウント:length
配列内の要素数を取得するにはlengthプロパティを使用します。
var array = [1, 2, 3, 4, 5];
print(array.length); // 5
要素が空かどうか:isEmpty
配列の要素が空かどうかを識別するにはisEmptyプロパティを使用します。逆に配列の要素が空ではないかを識別するにはisNotEmptyを使用します。
var array = [1, 2, 3, 4, 5];
print(array.isEmpty); // false
print(array.isNotEmpty;) // true
配列の最初の要素:first
配列の最初の要素を取得するにはfirstプロパティを使用します。配列の中身がからだった場合は例外Uncaught Error, error: Error: Bad state: No elementをスローするためisNotEmptyを併用すると安全に取り出すことができます。
var array = [1, 2, 3, 4, 5];
print(array.first); // 1
final first = array.isNotEmpty ? array.first : null;
配列の最後の要素:last
配列の最後の要素を取得するにはlastプロパティを使用します。こちらも同様に空配列だと例外をスローします。
var array = [1,2,3,4,5]
print(array.last) // 5
要素をランダムに取得:Random
配列の要素をランダムに取得するにはRandomクラスを使用します。
var array = [1, 2, 3, 4, 5];
final random = Random();
print(array[random.nextInt(array.length)]);
要素を追加:add
配列に要素を追加するにはaddメソッドを使用します。
array.add(6);
print(array); // [1, 2, 3, 4, 5, 6]
要素番号を指定して削除:removeAt
要素番号を指定して削除するにはremoveAtメソッドを使用します。引数には削除したい要素番号を指定します。
array.removeAt(0);
print(array); // [2, 3, 4, 5]
条件を満たす要素を削除:removeWhere
配列内の条件を満たす要素を削除するにはremoveWhereメソッドを使用します。引数内では要素を$0で表します。引数のクロージャーの中で削除対象となる条件式を渡します。
var array = [1, 2, 3, 4, 5];
array.removeWhere((e) => e > 2);
print(array); // [1, 2]
要素を全て削除:clear
要素を全て削除するにはclearメソッドを使用します。
array.clear();
要素インデックスを取得:indexWhere
配列内の要素インデックスを取得するにはindexWhereメソッドを使用します。引数には要素自体を指定します。
final index = array.indexWhere((e) => e > 4);
print(index); // 4
条件を満たす要素インデックスを取得:firstIndex(where:)
配列内で条件を満たす要素インデックスを取得するにはfirstIndex(where:)メソッドを使用します。引数内では要素を$0で表します。
var array = [1,2,3,4,5]
print(array.firstIndex(where: {$0 > 4})) // Optional(4)
指定の要素があるかどうか:contains / any
配列内に指定の要素があるかどうかはcontainsメソッドを使用します。
print(array.contains(3)); // true
条件に満たす要素があるかどうかはanyメソッドを使用します。
print(array.any((e) => e > 3)); // true
最大/最小の要素を取得:reduce
配列内で最大/最小の要素を取得するにはreduceメソッドを使用します。
print(array.reduce((a, b) => a > b ? a : b)); // 5
print(array.reduce((a, b) => a < b ? a : b)); // 1
最初の要素を除外する:skip(int)
配列内で最初の(または最初から指定までの)要素を除外した配列を取得するにはskip(int)メソッドを使用します。返り値として要素を除外した配列を取得することができ、元の配列には影響がないので注意してください。また返り値の型もIterable型になるので配列に戻したい場合は明示的にtoListを呼び出す必要があります。
print(array.skip(1).toList()); // [2, 3, 4, 5]
引数に要素インデックス番号を渡すと最初から指定した番号までを除外した配列を取得できます。
print(array.skip(3).toList()); // [4, 5]
最後の要素を除外する:take(int)
配列内で最後の(または最後から指定までの)要素を除外した配列を取得するにはtake(int)メソッドを使用します。返り値として要素を除外した配列を取得することができ、元の配列には影響がないので注意してください。また返り値の型もIterable型になるので配列に戻したい場合は明示的にtoListを呼び出す必要があります。
print(array.take(array.length - 1).toList()); // [1, 2, 3, 4]
配列を反転させる:reverse
配列内の順番を反転させるにはreverseメソッドを使用します。返り値として反転した配列を取得することができ、元の配列には影響がないので注意してください。また返り値の型もIterable型になるので配列に戻したい場合は明示的にtoListを呼び出す必要があります。
var array = [1, 2, 3, 4, 5];
print(array.reversed.toList()); // [5, 4, 3, 2, 1]
print(array); // [1, 2, 3, 4, 5]
配列の要素を結合:join
配列内の要素を結合した文字列にするはjoinメソッドを使用します。引数に渡した値を間に挟んだ文字列に変換してくれるのでCSVに変換したい時などに有効です。
var array = [1, 2, 3, 4, 5];
final csv = array.join(",");
print(csv); // "1,2,3,4,5"
文字列を配列に分割:split
文字列を指定文字で配列に分割させるにはsplitメソッドを使用します。
var str = "1,2,3,4,5";
var array = str.split(",");
print(array); // ["1", "2", "3", "4", "5"]
空白で分割するにはRegExp(r'\s+')を指定します。
var str = "1 2 3 4 5";
var array = str.split(RegExp(r'\s+'));
配列の中身を全て取り出す:forEach
配列の中身を全て取り出すにはforEachメソッドを使用します。
var array = [1,2,3,4,5]
array.forEach((item) {
print(item);
});
// 1
// 2
// 3
// 4
// 5
for〜in文
同様にfor〜in文を使用して配列の中身を全て取り出すことも可能です。
var array = [1,2,3,4,5]
for (final item in array) {
print(item);
}
// 1
// 2
// 3
// 4
// 5
要素全ての条件一致:every
配列内の要素全てが特定の条件を満たすかどうかを識別するにはeveryメソッドを使用します。配列内が空の場合はtrueを返します。
var array = [1, 2, 3, 4, 5];
final result = array.every((e) => e >= 1); // true
フィルタリング:where
配列内の要素をフィルタリングするにはeveryメソッドを使用します。返り値としてフィルタリングされた配列を取得することができ、元の配列には影響がないので注意してください。また返り値の型もIterable型になるので配列に戻したい場合は明示的にtoListを呼び出す必要があります。
Iterable filtered = array.where((e) => e > 1);
print(filtered); // (2, 3, 4, 5)
nullを除外する:whereType
配列内のnullを除外するにはwhereTypeメソッドを使用します。正確には指定した型以外を除外するためのメソッドです。
var array = [null, null, null, null, "5"];
Iterable filtered = array.whereType<String>();
print(filtered); // (5)
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。





