セット

Swiftにおける**セット(Set)**は、重複しない値を無順序で格納するコレクション型です。配列(Array)との違いは、順序が保証されず、同じ値を複数回含めることができないという点にあります。SwiftのSet型は、ハッシュ可能な型(Hashableプロトコルに準拠している型)の値を格納できます。


セットの基本構文

swift
var colors: Set<String> = ["Red", "Green", "Blue"]

または型推論を使って書くこともできます:

swift
var colors: Set = ["Red", "Green", "Blue"]

重複した値を入れても、自動的に取り除かれます:

swift
var colors: Set = ["Red", "Green", "Blue", "Red"] // 結果: ["Green", "Red", "Blue"]

セットの主な操作

要素の追加・削除

swift
colors.insert("Yellow") // 要素を追加 colors.remove("Red") // 要素を削除(存在しなければnilを返す)

要素の確認

swift
colors.contains("Blue") // true または false を返す

要素数の取得

swift
colors.count

空かどうか

swift
colors.isEmpty

セットの集合演算

Swiftのセットは数学的な集合操作をサポートしており、以下のような演算が可能です:

swift
let setA: Set = [1, 2, 3, 4] let setB: Set = [3, 4, 5, 6] // 和集合(union) let unionSet = setA.union(setB) // [1, 2, 3, 4, 5, 6] // 積集合(intersection) let intersectionSet = setA.intersection(setB) // [3, 4] // 差集合(subtracting) let subtractSet = setA.subtracting(setB) // [1, 2] // 対称差(symmetricDifference) let symmetricSet = setA.symmetricDifference(setB) // [1, 2, 5, 6]

イテレーション(繰り返し処理)

順序は保証されませんが、for-inループで要素を順に取り出すことができます。

swift
for color in colors { print(color) }

セットが適している場面

  • 値の重複を許したくないとき

  • 特定の値が存在するかどうかを高速にチェックしたいとき(検索は平均 O(1) の計算量)


まとめ

特徴 内容
重複 不可(同じ値は1つだけ)
順序 保証されない
型制限 要素はHashable準拠である必要がある
主な用途 集合演算、存在確認、重複排除など

生成日:2025/05/04