- List(リスト)の基本的な使い方が知りたい
- Listの宣言・初期化の仕方が知りたい
- Listに要素を追加、異なる配列と結合する方法が知りたい
「Flutter/Dart言語のListって何?」
今回はDart言語における「List」の使い方について分かりやすく解説していきます。
List(配列)とは?
- Listとは配列の一種で一連した複数のデータを格納できる
- 同じ値の要素を重複して格納できる
- 要素の位置ごとに連番(インデックス)が振り分けられる
Listとは配列の一種で一連した複数のデータを格納し、後から要素(データ)を取得したり追加したりできます。
またListに格納されたそれぞれの要素の位置(インデックス)は「0」からはじまる連番(0, 1, 2…)によって振り分けられます。
Listの配列の特徴として同じ値の要素を重複して格納できます。
初期化・要素の取得
Listに格納する値は[]の中に書き、,で値と値を区切ります。
要素を取得する際は変数名[インデックス]のように書きます。Listの連番は0から始まるので1つ目の要素を取得する場合は変数名[0]のように書きます。
//初期化
List<データの型> 変数名 = [値1, 値2, 値3];
//要素の取得
変数名[インデックス];//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c', 'd'];
  print(alphabet[0]); //Listから1つ目の要素を取得
  print(alphabet[2]); //Listから3つ目の要素を取得
}
//出力結果
//a
//c追加・挿入・結合
Listに要素を追加・挿入・結合する主なメソッドは次の通りです。
| メソッド | 意味 | 
|---|---|
| add() | 配列の最後に要素を追加 | 
| addAll() | 配列の最後に異なる配列を追加 | 
| insert() | 配列の途中に要素を追加 | 
| insertAll() | 配列の途中に異なる配列を追加 | 
add()
add()で配列の最後に要素を追加できます。
//書き方
List.add(追加する要素);//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c'];
  print(alphabet);
  alphabet.add('d');
  print(alphabet);
}
//出力結果
//[a, b, c]
//[a, b, c, d]addAll()
addAll()で配列の最後に異なる配列を追加(結合)できます。
//書き方
List.addAll(追加する配列);//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c'];
  List<String> alphabet2 = ['d', 'e'];
  alphabet.addAll(alphabet2);
  print(alphabet);
}
//出力結果
//[a, b, c, d, e]insert()
insert()で配列の途中に要素を追加できます。
//書き方
List.insert(追加する位置, 追加する要素);//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c'];
  print(alphabet);
  alphabet.insert(1, 'd');
  print(alphabet);
}
//出力結果
//[a, b, c]
//[a, d, b, c]insertAll()
insertAll()で配列の途中に異なる配列を追加(結合)できます。
//書き方
List.insertAll(追加する位置, 追加する配列);//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c'];
  List<String> alphabet2 = ['d', 'e'];
  alphabet.insertAll(1, alphabet2);
  print(alphabet);
}
//出力結果
//[a, d, e, b, c]削除
Listから要素を削除する主なメソッドは次の通りです。
| メソッド | 意味 | 
|---|---|
| remove() | 配列から要素を検索して削除 | 
| removeAt() | 指定した位置の要素を削除 | 
| removeLast() | 配列の最後の要素を削除 | 
| removeRange() | 配列から指定範囲の要素を削除 | 
| clear() | 配列を空にする | 
remove()
remove()で配列から指定した要素を検索して削除できます。
同じ要素が複数ある場合はインデックスの低い方の要素が削除されます。
//書き方
List.remove(削除したい要素);//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c', 'b'];
  alphabet.remove('b');
  print(alphabet);
}
//出力結果
//[a, c, b]removeAt()
removeAt()で指定した位置(インデックス)の要素を削除できます。
//書き方
List.removeAt(削除する位置);//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c', 'd'];
  alphabet.removeAt(1);
  print(alphabet);
}
//出力結果
//[a, c, d]removeLast()
removeLast()で配列の最後の要素を削除できます。
//書き方
List.removeLast();//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c', 'd'];
  alphabet.removeLast();
  print(alphabet);
}
//出力結果
//[a, b, c]removeRange()
removeRange()で配列から指定範囲の要素を削除できます。
第一引数で低いインデックス、第二引数で高いインデックスを渡して範囲を指定します。(第二引数で指定したインデックスの要素は指定範囲に含まれません。
//書き方
List.removeRange(位置の指定, 位置の指定);//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c', 'd', 'e'];
  alphabet.removeRange(1, 4);
  print(alphabet);
}
//出力結果
//[a, e]clear()
clear()で配列を空にできます。
//書き方
List.clear();//使用例
void main() {
  List<String> alphabet = ['a', 'b', 'c', 'd'];
  alphabet.clear();
  print(alphabet);
}
//出力結果
//[]まとめ
今回はDart言語における「List」の基本的な使い方について解説しました!
Flutterの配列にはList以外にも「Set」、「Map」などがあります。ぜひ一緒に学習してみてください。

