
今回は集合型データについて書きたいと思います。
集合も配列と同じで複数のデータを持つ事ができるデータ型です。
配列とどう違うのか??
①配列はインデックス番号で呼び出したり、削除したりしていましたが、集合は順序を持ちません。つまりインデックス番号がありません。
②配列は要素が重複しても大丈夫ですが、集合の場合、重複は許されていません。
この二つだけ注意しておきましょう。
var num: Set<Int> = [1, 5, 9, 14, 1]
var num: Set = [1, 5, 9, 14, 1]// 型推論で省略した書き方。
print(num) // 結果 [1, 14, 5, 9]
print(num.contains(9)) // 結果 true
print(num.contains(4)) // 結果 false
集合型は
var 変数名: Set<データ型> = [ データ1, データ2, データ3]
このように書きます。
型推論を使って省略して書く事もできます。
Setが付いてると集合型なんだなって理解できると思います。
とりあえず3行目で変数numを出力していますが、集合型は要素の重複を許さないので二つ目の1は無視されているのがわかると思います。
インデックス番号がないので一つの要素を呼び出す事ができないのですが、要素が入ってるかどうかを確認する事ができます。
それが4行目と5行目です。
結果でわかるように指定した要素があれば、true(真)、なければ false(偽)で返って来ます。
次に要素の追加と削除ですが、
>var num: Set = [1, 5, 9, 14]// 型推論で省略した書き方。
num.insert(99)
num.remove(5)
print(num)// 結果 [1, 99, 9, 14]
print(num.count)// 結果 4
var num2 = Set<Int>()
print(num2.isEmpty)// 結果 true
2行目で99を追加。
3行目で5を削除。
4行目の結果を見てみると99が追加されいて5が削除されているのがわかると思います。
ついでに5行目で要素の数を出力させています。
さらについでに7行目で空の集合型を作っています。
8行目の.isEmptyで空かどうか調べています!
var num1: Set = [1, 5, 9, 14]
var num2: Set = [5, 9, 14, 22]
print(num1.union(num2))//和集合 結果 [9, 5, 1, 14, 22]
print(num1.intersection(num2))//積集合 結果 [14, 5, 9]
print(num1.subtracting(num2))//差集合 結果 [1]
4行目が和集合。
5行目が積集合。
6行目が差集合。
このように書けばそれぞれ計算する事ができます。
当選番号を集合にして、自分が当選してるかどうかをcontainsで調べるとかそう言う使い道になるのかなって思います。
要するに、当選番号のように要素が多くていちいち確認してられない時などに使うのがいいと思います!
でも僕もまだ使った事ない、、、
今回はここまで!ありがとうございました!
コメントを残す