Swiftコレクションの変換術!配列・集合・辞書の相互変換レシピを完全ガイド
生徒
「Swiftで配列や辞書を使っていますが、配列を集合にしたり、辞書に変換したりってできますか?」
先生
「はい、できますよ!Swiftのコレクション型であるArray(配列)、Set(集合)、Dictionary(辞書)は、それぞれ簡単に変換する方法が用意されています。」
生徒
「便利そうですね!具体的にどうやって変換するのか教えてほしいです。」
先生
「それでは、配列と集合、辞書の変換テクニックをひとつずつ丁寧に解説していきましょう。」
1. Array(配列)からSet(集合)へ変換する
配列から集合へ変換すると、重複した値を自動的に取り除くことができます。Setはユニークな値だけを持つため、例えば同じ名前が何度も出てくる場合に便利です。
let namesArray = ["Alice", "Bob", "Alice", "Charlie"]
let namesSet = Set(namesArray)
print(namesSet)
このコードを実行すると、"Alice"が1回にまとめられた集合が得られます。
["Charlie", "Alice", "Bob"]
2. Set(集合)からArray(配列)に変換する
SetをArrayに戻すことで、順番をつけて使いたいときに役立ちます。Setは順序を持ちませんが、Arrayに変換すればインデックス番号を使ってアクセスできます。
let fruitSet: Set = ["Apple", "Banana", "Orange"]
let fruitArray = Array(fruitSet)
print(fruitArray)
順番は保証されませんが、配列として使えるようになります。
3. Array(配列)からDictionary(辞書)へ変換する
配列から辞書に変換するには、配列の各要素が(キー, 値)のペアである必要があります。これを使えば、一覧データを検索しやすく整えられます。
let pairsArray = [("dog", 1), ("cat", 2), ("bird", 3)]
let animalDict = Dictionary(uniqueKeysWithValues: pairsArray)
print(animalDict)
["dog": 1, "cat": 2, "bird": 3]
ここではDictionary(uniqueKeysWithValues:)を使って、配列から辞書を作成しています。
4. Dictionary(辞書)からArray(配列)に変換する
辞書から配列に変換するときは、キーと値のペアをタプルにして配列にします。よくある使い方として、データを一覧表示したいときなどに便利です。
let animalDict = ["dog": 1, "cat": 2, "bird": 3]
let pairsArray = Array(animalDict)
print(pairsArray)
[("dog", 1), ("cat", 2), ("bird", 3)]
このように、辞書の中身を配列として取り出せます。
5. Set(集合)からDictionary(辞書)への変換テクニック
SetからDictionaryに変換するには、まずSetの要素をキーとして、値は必要に応じて指定します。ここでは、各要素に「true」を割り当てた例を紹介します。
let wordSet: Set = ["Swift", "Kotlin", "Java"]
let wordDict = Dictionary(uniqueKeysWithValues: wordSet.map { ($0, true) })
print(wordDict)
["Kotlin": true, "Swift": true, "Java": true]
mapを使って(キー, 値)の形に整形し、それを辞書に変換しています。
6. Dictionary(辞書)からSet(集合)へ変換するには?
辞書の中の「キー」や「値」だけをSetに変換することもできます。例えば、ユニークなキーの一覧を取り出したいときに使えます。
let scores = ["Tom": 80, "Lisa": 90, "John": 75]
let nameSet = Set(scores.keys)
print(nameSet)
このようにscores.keysでキーの一覧を取り出し、それをSetにすることでユニークな名前の集合を作ることができます。
7. Swiftでコレクションを柔軟に扱うコツ
Swiftでは、配列(Array)、集合(Set)、辞書(Dictionary)を目的に応じて変換することで、処理がスムーズになります。
たとえば:
- 重複を取り除きたい → 配列→集合
- 順序を管理したい → 集合→配列
- 検索を高速にしたい → 配列→辞書
- 一覧表示したい → 辞書→配列
これらの変換レシピを覚えておくだけで、Swiftのコレクション操作がとても簡単になります。