swift – 配列(Array)の重複を削除する

動作環境
環境 | バージョン |
---|---|
Xcode | 9.4.1 |
iOS | 11.4 |
swift | 4.1.2 |
NSOrderedSetを使用
NSOrderedSetを使用するとArray内で重複している要素を削除することができます。
NSOrderedSetには重複を許さないという仕様があるためらしいです。
余談ですが、「重複」は「ちょうふく」と読むかと思うのですが、
「じゅうふく」と読んでいらっしゃる方を多々お見受けして内心「ププッ」と笑ってました。
しかしながら、調べてみると元来は「ちょうふく」と読むらしいのですが、
「じゅうふく」と読んで使われることが多くなっていることから、
辞典には「ちょうふく」「じゅうふく」どちらも記載があるそうです。
時代とともに言葉は変わりますから。
ということで最近は気にならなくなりました。
フッ。ほんとどうでもいい話です。
使い方
NSOrderedSet(array: )
で重複を削除したいArrayを一旦NSOrderedSetでインスタンス化し、
再度元のArrayに戻します。
// Int型の配列
var intArr: [Int] = [0, 1, 2, 3, 4, 1, 2, 3, ]
// Int型の配列をNSOrderedSetに変換
let orderedSet: NSOrderedSet = NSOrderedSet(array: intArr)
// 再度Arrayに戻す
intArr = orderedSet.array as! [Int]
for int in intArr {
// 出力してみる
print(int)
}
// 0
// 1
// 2
// 3
// 4
[amazon_link asins=’B0777FQSVY’ template=’custom’ store=’takayuki57101-22′ marketplace=’JP’ link_id=’41f2753e-aec1-11e8-ae3b-1fcd404aecc6′]