Swift の Set(セット)- 生成と要素の追加

ここでは Swift の Set(セット)について基本的なことと、要素の追加の方法についてご説明します。

Swift の Set(セット)の基本

Swift の Array(配列)は要素の順序があり、同じ値の要素を複数格納できましたが、Set(セット)は順序のない、ユニークな値の集合です。

Set は要素の順番を保持しないので、Array のように array[0] のようにインデックスを指定して要素にアクセスできません。

ただ実際は一度 Set に値が Insert されると、各要素の場所は固定されていて、要素の Set.Index を調べて、その Set.Index を引数として使えるメソッドもあります。


Set(セット)の要素のデータ型は、Dictionay(辞書)のキーと同様で Hashable な型でなくてはなりません。

Swift の String、Int、Double などの基本的なデータ型は Hashable です。

Swift の Set(セット)- 要素の変更・追加 1


Swift の Set(セット)を生成する

Swift で Set(セット)を作りたい時は、Set<データ型> のようにデータ型を指定します。

例えば、numbers という Int の Set を作って、空に初期化したい時は、次のようにできます。

var numbers = Set<Int>()
var numbers: Set<Int> = []

Set の生成と同時に Array リテラルで値を代入することもできます。

var numbers: Set<Int> = [1, 2, 3, 4, 5]

次のように要素のデータ型を省略することもできますが、Set がないと Array になってしまうので、Set は省略はできません。

var numbers: Set = [1, 2, 3, 4, 5]

Set を変更する必要がない時は var ではなくて let で定義します。

let numbers: Set = [1, 2, 3, 4, 5]

Set の要素は順序を持たないので、定義した numbers を print してみると、代入した順番と違うことがわかると思います。また、何度か実行すると、順序が変わることもあります。

Swift の Set(セット)- 要素の変更・追加 2

それでは、Swift の Set を使っていきましょう。


insert() で Set(セット)に要素を追加する

Swift の Set(セット)に要素を追加するには、insert() という名前のメソッドを使います。

既に要素に存在する値を insert しようとしても、insert されないだけでエラーにはなりません。


空っぽの Set を定義して、insert() を使って要素を三つ追加してみます。

var numbers: Set<Int> = []

numbers.insert(1)
print(numbers)

numbers.insert(2)
print(numbers)

numbers.insert(3)
print(numbers)

実行結果は次のようになり、順序は保たず numbers セットに値が追加されていっています。

[1]
[2, 1]
[2, 3, 1]

Swift の Set(セット)- 要素の変更・追加 3


以上、Swift の Set(セット)について基本的なことと、要素の追加の方法についてご説明しました。

© 2024 iOS 開発入門