【Flutter/Dart】Setの使い方|プロパティ・メソッドまとめ

Setクラスの「チートシート」です。

Setクラスの主なプロパティ・メソッドをまとめました。

\ 世界最大級のオンライン学習サービス /

目次

主なプロパティ一覧

概要プロパティ名
要素を数えるlength

length

var fruit = ['A', 'B', 'C'];
print(fruit.length);

//結果
//3

配列の要素の数はList型、Set型、Map型いずれでも数えられます。

主なメソッド一覧

概要メソッド名
要素を追加add
複数の要素を一括追加addAll
要素を空にするclear
指定した値が含まれているか判定contains
指定した複数の値が全て含まれているか判定containsAll
比較して重複要素を抽出(片方の配列から)intersection
比較して重複要素を抽出(両方の配列から)union
2つの配列を比較して重複しない要素を抽出difference
指定した要素を削除remove
指定した複数の要素を全て削除removeAll
指定した要素以外を全て削除retainAll

add

var set = {'apple', 'banana', 'grape'};

print(set.add('orange'));
print(set.add('apple'));
print(set);

//結果
//true
//false
//{apple, banana, grape, orange}

追加したい要素が配列に存在しない場合、配列の末尾に要素が追加され「true」を返します。

追加したい要素が既に配列に存在している場合、要素は追加されず「false」を返します。

addAll

var set = {'apple', 'banana', 'grape'};
set.addAll({'orange', 'apple'});
print(set);

//結果
//{apple, banana, grape, orange}

Set型では追加する要素が既に配列に存在している場合は追加されず、配列に存在していない要素だけが追加されます。

clear

var set = {'apple', 'banana', 'grape'};

set.clear();
print(set);

//結果
//{}

配列の要素を空にできます。

contains

var set = {'A', 'B', 'C'};
print(set.contains('A'));
print(set.contains('D'));

//結果
//true
//false

指定した値が配列に含まれている場合は「true」、含まれていない場合は「false」を返します。

containsAll

var set = {'A', 'B', 'C'};
print(set.containsAll({'A', 'B'}));
print(set.containsAll({'A', 'D'}));

//結果
//true
//false

指定した全ての値が配列に含まれている場合は「true」、含まれていない場合は「false」を返します。

intersection

var set1 = {'A', 'B', 'C'};
var set2 = {'A', 'D', 'E'};

var newSet = set1.intersection(set2);
print(newSet);

//結果
//{A}

intersectionメソッドでは2つの配列で重複要素を抽出し、新しい配列を生成します。

union

var set1 = {'A', 'B', 'C', 'D'};
var set2 = {'A', 'B', 'E', 'F'};

var newSet = set1.union(set2);
print(newSet);

//結果
//{A, B, C, D, E, F}

2つの配列を比較して重複しない要素を両方の配列から全て抽出し新しい配列を生成します。

difference

var set1 = {'A', 'B', 'C'};
var set2 = {'A', 'D', 'E'};

var newSet1 = set1.difference(set2);
var newSet2 = set2.difference(set1);

print(newSet1);
print(newSet2);

//結果
//{B, C}
//{D, E}

differenceメソッドでは「A.difference(B)」の「Bの配列」と重複しない要素を「Aの配列」から抽出し、新しい配列を生成します。

remove

var set = {'apple', 'banana', 'grape'};
print(set.remove('apple'));
print(set);

//結果
//true
//{banana, grape}

配列に指定した要素がある場合は要素が削除され「true」を返し、指定した要素がない場合は「false」を返します。

removeAll

var set = {'A', 'B', 'C', 'D'};
set.removeAll({'A', 'B', 'E'});
print(set);

//結果
//{C, D}

removeAllメソッドの引数にSetから削除したい要素の配列(Set)を渡します。

指定した要素が配列に含まれる場合、同じ値の要素だけが削除されます。

retainAll

var set = {'A', 'B', 'C', 'D'};
set.retainAll({'C', 'D', 'E'});
print(set);

//結果
//{C, D}

retainAllメソッドの引数にSetから取得したい要素の配列を渡します。

指定した要素と異なる要素が削除された新しいSetが生成されます。

  • URLをコピーしました!
目次