【Flutter/Dart】List(配列)の操作方法まとめ!追加/検索/分割/削除/インデックス/ソート

【Flutter/Dart】List(配列)の操作方法まとめ!追加/検索/分割/削除/インデックス/ソート

この記事からわかること

  • Flutter/Dart配列操作する方法
  • 追加/検索/分割/削除/インデックスの取得

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

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)

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

Search Box

Sponsor

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index