📖

【Flutter】入門!Dart基本「List、Map、Set」

2023/08/26に公開

List

DartにおけるListは、順序を持つ複数の要素を保持するコレクションです。要素は順序を持って並び、要素の位置をインデックスで指定してアクセスできます。Listは、同じ型の要素を格納するための便利なデータ構造です。

Listの作成

Listは角括弧 [] 内に要素をカンマ , で区切って定義します。

dart
List<int> numbers = [1, 2, 3, 4, 5];
List<String> fruits = ["apple", "banana", "orange"];

要素のアクセス

List内の要素は0から始まるインデックスでアクセスします。

dart
int firstNumber = numbers[0]; // 1
String secondFruit = fruits[1]; // "banana"

要素の追加・更新

Listに要素を追加するには、add メソッドを使用します。

dart
numbers.add(6); // 要素 6 を追加
fruits[2] = "grape"; // 既存の要素を更新

要素の削除

remove メソッドで指定した要素を削除できます。

dart
fruits.remove("banana"); // "banana" を削除

要素の存在確認

contains メソッドを使用して要素の存在を確認できます。

dart
bool hasApple = fruits.contains("apple"); // true
bool hasPear = fruits.contains("pear"); // false

要素の数

length プロパティでList内の要素の数を取得できます。

dart
int count = numbers.length; // 5

Listの操作

Listに対して多くの操作が用意されています。sort メソッドを使用して要素をソートしたり、addAll メソッドで別のListを追加したりすることができます。

dart
numbers.sort(); // 要素を昇順にソート
List<int> moreNumbers = [7, 8, 9];
numbers.addAll(moreNumbers); // 別のListを追加

Listのイテレーション

for-in ループを使用してList内の要素を順に処理することができます。

dart
for (int number in numbers) {
  print(number);
}

DartのListは、要素の追加や削除、ソート、検索など多くの操作が可能な強力なデータ構造です。プログラムで複数の要素を管理する際に便利です。

Map

DartにおけるMapは、キーと値のペアのコレクションです。キーと値は1対1の関係を持ち、キーを使用して値にアクセスすることができます。Mapは非常に便利で、データを関連付けて保存したり、検索したりするのに適しています。

Mapの作成

Mapは中括弧 {} 内にキーと値のペアをカンマ , で区切って定義します。キーと値の間はコロン : で区切ります。

dart
Map<String, int> scores = {
  "Math": 90,
  "English": 85,
  "Science": 78,
};

キーを使用した値のアクセス

Map のキーを使用して対応する値にアクセスできます。

dart
int mathScore = scores["Math"]; // 90

キーと値の追加・更新

キーと値の追加は、単に新しいキーと対応する値を代入することで行います。既に存在するキーに新しい値を代入すると、そのキーの対応する値が更新されます。

dart
scores["History"] = 88; // 新しいキーと値を追加
scores["Math"] = 95; // 既存のキーの値を更新

キーの存在確認

containsKey メソッドを使用してキーの存在を確認できます。

dart
bool hasMath = scores.containsKey("Math"); // true
bool hasGeography = scores.containsKey("Geography"); // false

キーと値の削除

remove メソッドを使用してキーと対応する値を削除できます。

dart
scores.remove("English"); // キー "English" と対応する値を削除

全てのキーと値を取得

keys プロパティは、Map内の全てのキーを Iterable として返します。また、values プロパティは、Map内の全ての値を Iterable として返します。

dart
Iterable<String> subjects = scores.keys;
Iterable<int> scoreValues = scores.values;

Mapの長さ

length プロパティを使用してMap内のキーと値のペアの数を取得できます。

dart
int mapLength = scores.length; // Map内のキーと値のペアの数

MapはDartで非常に便利なデータ構造です。関連するデータを整理し、効率的にアクセスするために使用されます。

Set

DartにおけるSetは、重複を許さない要素のコレクションです。Setは要素の順序を保持しません。重複する要素は一つにまとめられます。Setは、ユニークな要素の集合を管理する際に便利です。

Setの作成

Setは波括弧 {} 内に要素をカンマ , で区切って定義します。

dart
Set<int> numbers = {1, 2, 3, 4, 5};
Set<String> fruits = {"apple", "banana", "orange"};

要素の追加

Setに要素を追加するには、add メソッドを使用します。Setは重複する要素を保持しないため、同じ要素が複数回追加されても1つしか保持されません。

dart
numbers.add(6); // 要素 6 を追加
fruits.add("apple"); // 重複する要素を追加しても無視される

要素の削除

remove メソッドで指定した要素を削除できます。

dart
fruits.remove("banana"); // "banana" を削除

要素の存在確認

contains メソッドを使用して要素の存在を確認できます。

dart
bool hasApple = fruits.contains("apple"); // true
bool hasPear = fruits.contains("pear"); // false

要素の数

length プロパティでSet内の要素の数を取得できます。

dart
int count = numbers.length; // 6

Setの操作

Setに対しても、要素の結合や差分、交差など多くの操作が提供されています。例えば、union メソッドで2つのSetを結合し、intersection メソッドで2つのSetの共通部分を取得できます。

dart
Set<int> otherNumbers = {4, 5, 6, 7};
Set<int> unionSet = numbers.union(otherNumbers); // 和集合
Set<int> intersectionSet = numbers.intersection(otherNumbers); // 積集合

Setのイテレーション

for-in ループを使用してSet内の要素を順に処理することができます。

dart
for (String fruit in fruits) {
  print(fruit);
}

DartのSetは、重複する要素を持たないため、ユニークな要素を管理したい場合に適しています。

Discussion