【Flutter/Dart】Listクラス/使い方/基礎から実践

最終更新日

Dartの基本文であるListクラスについて調べてまとめました。基礎から実践までサンプルがあります。動かない場合はコメントください。

動かすにはDartpadを使用してください。

Listとは

公式サイト

https://api.flutter.dev/flutter/dart-core/List-class.html

Listとは、Dartで配列を扱うためのクラス。

List・Set・Mapの違い

List・Set・Mapの違いは下記の表のようになっています。

違い/型ListSetMap
宣言[]{}{}
要素重複要素を持てる重複要素を持てない重複要素を持てない
順序順序付きコレクションデフォルトは順序付きデフォルトは順序付き

基礎

宣言

//宣言
var 名 = <型>[];

//変数に格納する
var fruit = <String>[];

値を代入

//下記のようにする
var リスト名 = [値1, 値2, 値3];
void main(){
var fruit = ['apple', 'banana', 'grape'];
  }

値を取得

void main(){
  var fruit = ['apple', 'banana', 'grape'];
print(fruit[0]); 
}

値を書き換える

void main(){
  var fruit = ['apple', 'banana', 'grape'];
fruit[0] = 'lemon';
print(fruit);
}

Listのプロパティ

first 

配列の最初の値を調べるプロパティです。このプロパティを使うと配列に格納している最初の値を調べることができます。

void main(){
  var numbers = [1, 2, 3];
print(numbers.first);
}

last

配列の最後の値を調べるプロパティです。このプロパティを使うと配列に格納している最後の値を調べることができます。

void main(){
  var numbers = [1, 2, 3];
print(numbers.last);
}

isEmpty

配列に値が格納されているかどうか調べプロパティです。このプロパティを使うと配列に値を格納しているか調べことができます。ちなみに、値がない場合trueです。

void main(){
  var numbers = [];
print(numbers.isEmpty);
}

length

配列の値を長さを数えるプロパティです。このプロパティを使うと配列に格納している値の数を数えることができます。

void main(){
  var numbers = [1, 2, 3];
print(numbers.length);
}

reversed

配列の値を逆に並び替えるプロパティです。このプロパティを使うと配列に格納している値を逆順に並び替えることができます。

void main(){
  var numbers = [1, 2, 3];
print(numbers.reversed);
}

Listのメソッド

add(E value)

配列の値を最後に一つだけ追加するメソッドです。このメソッドを使うと配列の値を他の配列の最後に一つだけ追加することができます。

void main(){
  var numbers = [1, 2, 3];
numbers.add(4);
print(numbers);
}

addAll(List<E> List)

配列の値を最後に追加するメソッドです。このメソッドを使うと配列の値を他の配列の最後に追加することができます。

void main(){
  var numbers = [1, 2, 3];
numbers.addAll([4, 5, 6]);
print(numbers);
}

insert(int index, E element)

キーで指定した位置に配列の値を追加することができます。第一引数に新しい要素を挿入するキー、第二引数に挿入する値を代入します。

void main(){
  var numbers = [1, 2, 3];
numbers.insert(0, -1);
print(numbers); 
}

insert.All(index, List<E> value)

配列の値を追加するメソッドです。このメソッドを使うと第一引数に指定した場所(キー)に配列を追加することができます。

void main(){
var numbers = [1, 2, 3];
numbers.insertAll(0, [-2, -1, 0]);
print(numbers);
}

remove(Object? value)

配列のキーを指定した値を削除するメソッドです。このメソッドを使うと配列のキーを指定した値を削除することができます。同じ値が複数個ある場合はキーの低い方が削除されます。

void main(){
  var numbers = [1, 2, 3, 2];
numbers.remove(2);
print(numbers);
}
//出力
//[1, 3, 2]

removeAt(int index) 

配列の最初の値を削除するメソッドです。このメソッドを使うと配列の最初の値を削除することができます。

void main(){
  var numbers = [1, 2, 3];
numbers.removeAt(0);
print(numbers); 
  }

//出力
//[2, 3]

removeLast() 

配列の最後の値を削除するメソッドです。このメソッドを使うと配列の最後の値を削除することができます。

void main(){
  var numbers = [1, 2, 3];
print(numbers.removeLast()); 
print(numbers);
}

//出力
//3
//[1, 2]

clear()

配列の値を全て削除するメソッドです。このメソッドを使うと配列の値を全て削除することができます。

void main(){
  var numbers = [1, 2, 3];
numbers.clear();
print(numbers);
}

//出力
//[]

indexOf(E element, [int start = 0]) 

指定した配列に要素が配列にない場合は「-1」、指定した配列に要素がある場合はキーを返します。また、同じ値の要素が複数個ある場合はキーの低い方が返ります。

void main(){
  var fruit = ['apple', 'banana', 'grape', 'banana'];
print(fruit.indexOf('banana'));
}
//出力
//1

shuffle()

配列の値を全てシャッフルするメソッドです。このメソッドを使うと配列の値を全てランダムに並び替えることができます。

void main(){
  var number = [1, 2, 3];
number.shuffle();
print(number);
}
//出力(例)
//[2, 1, 3] 

generate()

ジェネレータで指定した数だけ、要素を生成するメソッドです。このメソッドを使うと指定した分だけ要素を生成し、配列に格納しています。

void main(){
  var generatedItems = List.generate(5, (index) => 'Hello $index');
for (var item in generatedItems) {
  print(item);
}}

//出力
//Hello 0
//Hello 1
//Hello 2
//Hello 3
//Hello 4

num

https://api.dart.dev/stable/2.18.0/dart-core/num-class.html

void main() {
  var numbers = [1, 2, 3, 4, 5];
  
  numbers.forEach((num) {
    print(num);
  });
}

参考

https://www.choge-blog.com/programming/dart-list-elementcount/

合わせて読みたい記事

https://kevins-blog.com/how-to-compare-listmap-element/