【ざっくり解説】Setの役割は何?- Swiftを理解する

Swift

SwiftにはSetという型があります。今回はこのSetについて説明します。

SetはCollection Type

SetはCollection Typeというプロトコルに準拠した型です。
Collection Typeに準拠した型は決められた型の値を格納し、それ以外の型は格納することはできません。なので、必ず決められた型の値を受け取ることが保証されます。

Collection Typeに準拠しているものは他に、ArrayとDictionaryがあります。
ではそれらとSetの違いや使い分ける基準は何でしょう?

Setの特徴

Setの特徴は

  • 重複しないユニークなデータを保持する。
  • 要素の順番は関係ない

という点になります。ユニークなデータを保持するため、要素はHashableに準拠していなければなりません。ArrayとDictionaryと比較しやすいように以下にまとめます。

要素の重複要素の順序要素がHashableに準拠
Set×順序は保持されない準拠する必要がある
Array格納順に保持必ずしも準拠する必要はない
Dictionarykeyは×
vakueは◯
順序は保持されない準拠する必要がある

特徴にこのような違いがあるので、正しく使い分けるようにしましょう。

Setの使い方

使い方は特に難しくありません。

let intData: Set = [1, 3, 5, 7, 9]

IntはHashableに準拠しているため、こんな感じで簡単に使用できます。

また、insertやremoveといった配列系の型によくある処理のほかに、Setには特徴的な関数がいくつか用意されています。

let set1: Set = [a,b,c,d]
let set2: Set = [c,d,e,f]

se1とset2という2つのSetがあるとします。

set1.union(set2)
重複を除くset1とset2に含まれるすべての要素を新しいSetにする。
=[a,b,c,d,e,f]

set1.intersection(set2)
set1とset2の重複している要素を新しいSetにする
=[c,d]

set1.symmetricDifference(set2)
set1とset2で重複してなくどちらかにだけある要素をSetにする
=[a,b,e,f]

こういった処理もうまく利用していきましょう。

コメント

タイトルとURLをコピーしました