【Flutter】入門!Dart基本「List、Map、Set」
List
DartにおけるListは、順序を持つ複数の要素を保持するコレクションです。要素は順序を持って並び、要素の位置をインデックスで指定してアクセスできます。Listは、同じ型の要素を格納するための便利なデータ構造です。
Listの作成
Listは角括弧 [] 内に要素をカンマ , で区切って定義します。
List<int> numbers = [1, 2, 3, 4, 5];
List<String> fruits = ["apple", "banana", "orange"];
要素のアクセス
List内の要素は0から始まるインデックスでアクセスします。
int firstNumber = numbers[0]; // 1
String secondFruit = fruits[1]; // "banana"
要素の追加・更新
Listに要素を追加するには、add メソッドを使用します。
numbers.add(6); // 要素 6 を追加
fruits[2] = "grape"; // 既存の要素を更新
要素の削除
remove メソッドで指定した要素を削除できます。
fruits.remove("banana"); // "banana" を削除
要素の存在確認
contains メソッドを使用して要素の存在を確認できます。
bool hasApple = fruits.contains("apple"); // true
bool hasPear = fruits.contains("pear"); // false
要素の数
length プロパティでList内の要素の数を取得できます。
int count = numbers.length; // 5
Listの操作
Listに対して多くの操作が用意されています。sort メソッドを使用して要素をソートしたり、addAll メソッドで別のListを追加したりすることができます。
numbers.sort(); // 要素を昇順にソート
List<int> moreNumbers = [7, 8, 9];
numbers.addAll(moreNumbers); // 別のListを追加
Listのイテレーション
for-in ループを使用してList内の要素を順に処理することができます。
for (int number in numbers) {
print(number);
}
DartのListは、要素の追加や削除、ソート、検索など多くの操作が可能な強力なデータ構造です。プログラムで複数の要素を管理する際に便利です。
Map
DartにおけるMapは、キーと値のペアのコレクションです。キーと値は1対1の関係を持ち、キーを使用して値にアクセスすることができます。Mapは非常に便利で、データを関連付けて保存したり、検索したりするのに適しています。
Mapの作成
Mapは中括弧 {} 内にキーと値のペアをカンマ , で区切って定義します。キーと値の間はコロン : で区切ります。
Map<String, int> scores = {
"Math": 90,
"English": 85,
"Science": 78,
};
キーを使用した値のアクセス
Map のキーを使用して対応する値にアクセスできます。
int mathScore = scores["Math"]; // 90
キーと値の追加・更新
キーと値の追加は、単に新しいキーと対応する値を代入することで行います。既に存在するキーに新しい値を代入すると、そのキーの対応する値が更新されます。
scores["History"] = 88; // 新しいキーと値を追加
scores["Math"] = 95; // 既存のキーの値を更新
キーの存在確認
containsKey メソッドを使用してキーの存在を確認できます。
bool hasMath = scores.containsKey("Math"); // true
bool hasGeography = scores.containsKey("Geography"); // false
キーと値の削除
remove メソッドを使用してキーと対応する値を削除できます。
scores.remove("English"); // キー "English" と対応する値を削除
全てのキーと値を取得
keys プロパティは、Map内の全てのキーを Iterable として返します。また、values プロパティは、Map内の全ての値を Iterable として返します。
Iterable<String> subjects = scores.keys;
Iterable<int> scoreValues = scores.values;
Mapの長さ
length プロパティを使用してMap内のキーと値のペアの数を取得できます。
int mapLength = scores.length; // Map内のキーと値のペアの数
MapはDartで非常に便利なデータ構造です。関連するデータを整理し、効率的にアクセスするために使用されます。
Set
DartにおけるSetは、重複を許さない要素のコレクションです。Setは要素の順序を保持しません。重複する要素は一つにまとめられます。Setは、ユニークな要素の集合を管理する際に便利です。
Setの作成
Setは波括弧 {} 内に要素をカンマ , で区切って定義します。
Set<int> numbers = {1, 2, 3, 4, 5};
Set<String> fruits = {"apple", "banana", "orange"};
要素の追加
Setに要素を追加するには、add メソッドを使用します。Setは重複する要素を保持しないため、同じ要素が複数回追加されても1つしか保持されません。
numbers.add(6); // 要素 6 を追加
fruits.add("apple"); // 重複する要素を追加しても無視される
要素の削除
remove メソッドで指定した要素を削除できます。
fruits.remove("banana"); // "banana" を削除
要素の存在確認
contains メソッドを使用して要素の存在を確認できます。
bool hasApple = fruits.contains("apple"); // true
bool hasPear = fruits.contains("pear"); // false
要素の数
length プロパティでSet内の要素の数を取得できます。
int count = numbers.length; // 6
Setの操作
Setに対しても、要素の結合や差分、交差など多くの操作が提供されています。例えば、union メソッドで2つのSetを結合し、intersection メソッドで2つのSetの共通部分を取得できます。
Set<int> otherNumbers = {4, 5, 6, 7};
Set<int> unionSet = numbers.union(otherNumbers); // 和集合
Set<int> intersectionSet = numbers.intersection(otherNumbers); // 積集合
Setのイテレーション
for-in ループを使用してSet内の要素を順に処理することができます。
for (String fruit in fruits) {
print(fruit);
}
DartのSetは、重複する要素を持たないため、ユニークな要素を管理したい場合に適しています。
Discussion