Dart Set同士を結合する

Dartで、Set同士を結合するコードを記述してます。「followedBy」を使用します。型の違うリスト同士に使用するとエラーが発生します。戻り値は「Iterable」なので「Set」で取得する場合は、実行後に「Set」に変換します。
環境
- OS windows11 home
- Dart 2.18.4
Set同士を結合
Set同士を結合するには「 followedBy 」を使用します。
セット.followedBy(セット)
※Iterableが返ります
実際に、使用して結合してみます。
void main() {
var set1 = {'aaa', 'bbb'};
var set2 = {'ccc', 'aaa'};
var result = set1.followedBy(set2);
print(result); // (aaa, bbb, ccc, aaa)
print(result.runtimeType); // EfficientLengthFollowedByIterable<String>
}
実行結果を見ると、結合されていることが確認できます。

数値同士の場合は「Iterable<int>」が返ります。
void main() {
var set1 = {11, 22};
var set2 = {33, 44};
var result = set1.followedBy(set2);
print(result); // (11, 22, 33, 44)
print(result.runtimeType); // EfficientLengthFollowedByIterable<int>
}
型の違うものに使用するとエラーが発生します。
void main() {
var set1 = {11, 22};
var set2 = {'aa', 'bb'};
var result = set1.followedBy(set2);
}
main.dart:5:32: Error: The argument type 'Set<String>' can't be assigned to the parameter type 'Iterable<int>'.
- 'Set' is from 'dart:core'.
- 'Iterable' is from 'dart:core'.
var result = set1.followedBy(set2);
3つ以上のSetを連結させる場合は「followedBy」をチェーンメソッドで使用します。
void main() {
var set1 = {11, 22};
var set2 = {33, 44};
var set3 = {55, 66};
var result = set1.followedBy(set2).followedBy(set3);
print(result); // (11, 22, 33, 44, 55, 66)
print(result.runtimeType); // EfficientLengthFollowedByIterable<int>
}
Setに変換
Setに変換する場合は「toSet()」でSetに変換します。
※Set変換時に重複は除去されます。
void main() {
var set1 = {'aaa', 'bbb'};
var set2 = {'ccc', 'aaa'};
var result = set1.followedBy(set2);
print(result.toSet()); // {aaa, bbb, ccc}
print(result.runtimeType); // EfficientLengthFollowedByIterable<String>
}
union
「union」を使用して結合することも可能です。
void main() {
var set1 = {11, 22, 33};
var set2 = {33, 44, 55};
var result = set1.union(set2);
print(set1.union(set2)); // {11, 22, 33, 44, 55}
print(set2.union(set1)); // {33, 44, 55, 11, 22}
}
-
前の記事
MariaDB 西暦0年から経過した日数を日付から取得する 2022.11.20
-
次の記事
javascript オブジェクトの配列から指定したプロパティを削除する 2022.11.21
コメントを書く