DartのList
は、多数の機能が提供されています。以下は、DartのList
クラスに関する一部の主要な機能とメソッドの一覧です。
空のリストを作成します。List()
List<String> emptyList = List();
print(emptyList); // 出力: []
与えられた長さで、指定された値で埋められたリストを作成します。List.filled(length, fill)
List<int> filledList = List.filled(5, 3); // 長さ5で、全ての要素が3のリスト
print(filledList); // 出力: [3, 3, 3, 3, 3]
生成関数を使ってリストを作成します。List.generate(length, generator)
List<int> generatedList = List.generate(5, (index) => index * 2);
// 長さ5で、各要素はインデックスの2倍のリスト
print(generatedList); // 出力: [0, 2, 4, 6, 8]
リストの最後に要素を追加します。add(value)
List<int> numbers = [1, 2, 3];
numbers.add(4);
複数の要素をリストに追加します。addAll(Iterable)
List<int> numbers = [1, 2, 3];
numbers.addAll([4, 5, 6]);
print(numbers); // 出力: [1, 2, 3, 4, 5, 6]
指定したインデックスに要素を挿入します。insert(index, value)
List<int> numbers = [1, 3, 4];
numbers.insert(1, 2); // インデックス1に2を挿入
print(numbers); // 出力: [1, 2, 3, 4]
指定したインデックスに複数の要素を挿入します。insertAll(index, Iterable)
List<int> numbers = [1, 5];
numbers.insertAll(1, [2, 3, 4]); // インデックス1に[2, 3, 4]を挿入
print(numbers); // 出力: [1, 2, 3, 4, 5]
与えられた値をリストから削除します。remove(value)
List<int> numbers = [1, 2, 3, 4];
numbers.remove(2); // 値2を削除
print(numbers); // 出力: [1, 3, 4]
指定したインデックスの要素を削除します。removeAt(index)
List<int> numbers = [1, 2, 3, 4];
numbers.removeAt(1); // インデックス1の要素を削除
print(numbers); // 出力: [1, 3, 4]
リストの最後の要素を削除します。removeLast()
List<int> numbers = [1, 2, 3, 4];
numbers.removeLast(); // 最後の要素を削除
print(numbers); // 出力: [1, 2, 3]
条件に一致するすべての要素を削除します。removeWhere(test)
List<int> numbers = [1, 2, 3, 4, 5, 6];
numbers.removeWhere((number) => number % 2 == 0); // 偶数をすべて削除
print(numbers); // 出力: [1, 3, 5]
条件に一致しない要素を削除します。retainWhere(test)
List<int> numbers = [1, 2, 3, 4, 5, 6];
numbers.retainWhere((number) => number % 2 == 0); // 奇数をすべて削除
print(numbers); // 出力: [2, 4, 6]
リストのすべての要素を削除します。clear()
List<int> numbers = [1, 2, 3, 4, 5];
numbers.clear(); // すべての要素を削除
print(numbers); // 出力: []
リストの最初の要素を取得します。first
List<int> numbers = [1, 2, 3, 4];
print(numbers.first); // 出力: 1
リストの最後の要素を取得します。last
List<int> numbers = [1, 2, 3, 4];
print(numbers.last); // 出力: 4
リストが空かどうかを判断します。isEmpty
List<int> emptyList = [];
print(emptyList.isEmpty); // 出力: true
リストに要素が含まれているかどうかを判断します。isNotEmpty
List<int> numbers = [1, 2, 3, 4];
print(numbers.isNotEmpty); // 出力: true
与えられた値のインデックスを取得します。indexOf(value)
List<int> numbers = [1, 2, 3, 4];
print(numbers.indexOf(3)); // 出力: 2
与えられた値がリストに含まれているかどうかを判断します。contains(value)
List<int> numbers = [1, 2, 3, 4];
print(numbers.contains(3)); // 出力: true
print(numbers.contains(5)); // 出力: false
各要素を関数で変換した結果のIterableを取得します。map(function)
List<int> numbers = [1, 2, 3, 4];
var squaredNumbers = numbers.map((number) => number * number);
print(squaredNumbers.toList()); // 出力: [1, 4, 9, 16]
IterableをListに変換します。toList()
Iterable<int> numbers = [1, 2, 3, 4].map((number) => number * 2);
List<int> doubledNumbers = numbers.toList();
print(doubledNumbers); // 出力: [2, 4, 6, 8]
リストをSetに変換します。toSet()
List<int> numbers = [1, 2, 2, 3, 4, 4];
Set<int> uniqueNumbers = numbers.toSet();
print(uniqueNumbers); // 出力: {1, 2, 3, 4}
リストを並べ替えます。sort([compare])
List<int> numbers = [4, 1, 3, 2];
numbers.sort();
print(numbers); // 出力: [1, 2, 3, 4]
リストの要素をシャッフルします。shuffle([random])
List<int> numbers = [1, 2, 3, 4];
numbers.shuffle();
print(numbers); // 出力: 例 [3, 1, 4, 2] (ランダムな順序)
リストの要素の順序を逆にします。reverse()
List<int> numbers = [1, 2, 3, 4];
print(numbers.reversed.toList()); // 出力: [4, 3, 2, 1]
リストの各要素に関数を適用します。forEach(function)
List<int> numbers = [1, 2, 3, 4];
numbers.forEach((number) {
print(number * 2); // 出力: 2, 4, 6, 8 (各行)
リスト内のすべての数値の合計を計算します。reduce(function)
List<int> numbers = [1, 2, 3, 4];
int sum = numbers.reduce((currentSum, number) => currentSum + number);
print(sum); // 出力: 10
リスト内のすべての数値の積(乗算の結果)を計算しますfold(initialValue, function)
List<int> numbers = [1, 2, 3, 4];
int product = numbers.fold(1, (currentProduct, number) => currentProduct * number);
print(product); // 出力: 24
すべての要素がテストを満たすかどうかを判断します。every(test)
List<int> numbers = [2, 4, 6, 8];
bool allEven = numbers.every((number) => number % 2 == 0);
print(allEven); // 出力: true
いずれかの要素がテストを満たすかどうかを判断します。any(test)
List<int> numbers = [1, 3, 5, 7, 8];
bool hasEven = numbers.any((number) => number % 2 == 0);
print(hasEven); // 出力: true
テストを満たす要素のイテラブルを取得します。where(test)
List<int> numbers = [1, 2, 3, 4, 5, 6];
Iterable<int> evenNumbers = numbers.where((number) => number % 2 == 0);
print(evenNumbers.toList()); // 出力: [2, 4, 6]
テストを満たす最初の要素を取得します。firstWhere(test)
List<int> numbers = [1, 3, 5, 7, 8];
int firstEven = numbers.firstWhere((number) => number % 2 == 0, orElse: () => -1);
print(firstEven); // 出力: 8
テストを満たす最後の要素を取得します。lastWhere(test)
List<int> numbers = [2, 4, 5, 7];
int lastOdd = numbers.lastWhere((number) => number % 2 != 0, orElse: () => -1);
print(lastOdd); // 出力: 7
テストを満たす唯一の要素を取得します(複数ある場合はエラー)。singleWhere(test)
List<int> numbers = [1, 3, 5, 7];
try {
int singleOdd = numbers.singleWhere((number) => number == 5);
print(singleOdd); // 出力: 5
} catch (e) {
print(e); // エラーが発生した場合の処理
指定された範囲の部分リストを取得します。sublist(start, [end])
List<int> numbers = [1, 2, 3, 4, 5];
List<int> subNumbers = numbers.sublist(1, 4);
print(subNumbers); // 出力: [2, 3, 4]
リストの最初のn要素を取得します。take(count)
List<int> numbers = [1, 2, 3, 4, 5];
Iterable<int> firstThree = numbers.take(3);
print(firstThree.toList()); // 出力: [1, 2, 3]
リストの最初のn要素をスキップします。skip(count)
List<int> numbers = [1, 2, 3, 4, 5];
Iterable<int> afterThree = numbers.skip(3);
print(afterThree.toList()); // 出力: [4, 5]
リストの要素を結合して文字列を作成します。join([separator])
List<String> words = ["Hello", "World"];
String sentence = words.join(" ");
print(sentence); // 出力: "Hello World"