カテゴリ: Swift 更新日: 2026/01/09

Swiftの連想配列(Dictionary)入門!キーと値の基本から型安全まで徹底解説

Swift 連想配列(Dictionary)入門|キー/値の扱いと型安全
Swift 連想配列(Dictionary)入門|キー/値の扱いと型安全

先生と生徒の会話形式で理解しよう

生徒

「Swiftで名前と年齢みたいなセットを一覧で持つ方法ってありますか?」

先生

「はい、SwiftではDictionaryという連想配列を使うことで、名前と年齢のような『キー』と『値』のペアを簡単に管理できますよ。」

生徒

「連想配列ってちょっと難しそう…初めてでも使えますか?」

先生

「もちろんです。一つ一つ順番に説明していくので、一緒に理解していきましょう!」

1. Dictionary(連想配列)とは?

1. Dictionary(連想配列)とは?
1. Dictionary(連想配列)とは?

SwiftのDictionary(ディクショナリ)は、「キー(Key)」と「値(Value)」をセットで管理するコレクション型です。たとえば「名前 → 年齢」のように、キーを使って値を簡単に取り出すことができます。

これは「名前で人の情報を検索する電話帳」のようなイメージです。普通の配列(Array)は順番でアクセスしますが、連想配列は名前(キー)でアクセスできるのが特徴です。

2. SwiftでDictionaryを作成する基本

2. SwiftでDictionaryを作成する基本
2. SwiftでDictionaryを作成する基本

Swiftでは、次のようにDictionaryを作成します。


var ages: [String: Int] = [
    "太郎": 20,
    "花子": 18,
    "次郎": 22
]

この例では、名前(String型)がキーで、年齢(Int型)が値になっています。キーと値の型をコロンでつなげて、[Key: Value]の形で書きます。

3. Dictionaryの値を取り出す方法

3. Dictionaryの値を取り出す方法
3. Dictionaryの値を取り出す方法

特定のキーに対応する値を取得するには、次のように書きます。


let ageOfTaro = ages["太郎"]
print(ageOfTaro)

Optional(20)

注意点として、Dictionaryから値を取り出すときはOptional(値があるかもしれない、ないかもしれない型)になります。これは、指定したキーが存在しない可能性があるためです。

4. 値の変更と追加方法

4. 値の変更と追加方法
4. 値の変更と追加方法

Dictionaryに新しいキーと値を追加したり、既存の値を変更したりするには以下のように書きます。


ages["三郎"] = 25     // 新しいキーを追加
ages["太郎"] = 21     // 既存の値を変更

このように、キーを指定して値を代入するだけで追加や更新ができます。

5. Dictionaryから値を削除する

5. Dictionaryから値を削除する
5. Dictionaryから値を削除する

キーごと値を削除したい場合は、次のように書きます。


ages.removeValue(forKey: "花子")

removeValue(forKey:)メソッドを使うと、指定したキーの値を削除できます。

6. Dictionaryをループ処理する方法

6. Dictionaryをループ処理する方法
6. Dictionaryをループ処理する方法

全てのキーと値を取り出して処理するには、for-inループを使います。


for (name, age) in ages {
    print("\(name)さんは\(age)歳です")
}

太郎さんは21歳です
次郎さんは22歳です
三郎さんは25歳です

このように、(キー, 値)のペアでループできます。配列のループとよく似ていますが、順番は保証されていません。

7. 空のDictionaryを作成する方法

7. 空のDictionaryを作成する方法
7. 空のDictionaryを作成する方法

最初は中身が空のDictionaryを用意して、あとから値を追加したい場合には次のように書きます。


var students: [String: String] = [:]
students["A001"] = "佐藤"
students["A002"] = "鈴木"

このように、[:]を使って空の連想配列を作ることができます。

8. Dictionaryで型安全を意識しよう

8. Dictionaryで型安全を意識しよう
8. Dictionaryで型安全を意識しよう

SwiftのDictionaryは型安全(type safety)を守ることで、プログラムの間違いを未然に防ぐ仕組みになっています。たとえば、次のように異なる型の値を混ぜることはできません。


// エラーになる例
// var data: [String: Any] = ["key1": "文字列", "key2": 123]

型安全とは、あらかじめ「このDictionaryは文字列のキーと、整数の値しか受け付けません」と決めておくことで、意図しない使い方を防ぐしくみです。

9. Dictionaryの存在確認:キーがあるかどうか

9. Dictionaryの存在確認:キーがあるかどうか
9. Dictionaryの存在確認:キーがあるかどうか

特定のキーが存在するかどうかを確認したいときには、次のようにif letnilチェックを使います。


if let age = ages["花子"] {
    print("花子さんは\(age)歳です")
} else {
    print("花子さんの情報は見つかりません")
}

花子さんの情報は見つかりません

このように、存在しないキーを使ったときにエラーにならないよう、安全に処理する方法も大切です。

10. Dictionaryを使った実用サンプル

10. Dictionaryを使った実用サンプル
10. Dictionaryを使った実用サンプル

最後に、簡単な出席簿アプリのようなサンプルを見てみましょう。


let attendance: [String: Bool] = [
    "佐藤": true,
    "鈴木": false,
    "田中": true
]

for (name, isPresent) in attendance {
    let status = isPresent ? "出席" : "欠席"
    print("\(name)さんは\(status)です")
}

佐藤さんは出席です
鈴木さんは欠席です
田中さんは出席です

このように、名前と出欠情報のようなデータを、連想配列でわかりやすく管理できます。

Swiftを基礎から実践レベルまで学びたい人や、 iOSアプリ開発を本格的に始めたい人には、 定番の入門+実践書がこちらです。

Swift実践入門をAmazonで見る

※ Amazon広告リンク

まとめ

まとめ
まとめ

SwiftのDictionaryを基礎から理解することの大切さ

今回の記事では、Swiftの連想配列であるDictionaryについて、基本的な考え方から実際の使い方、さらに型安全というSwiftらしい特徴までを丁寧に確認してきました。Dictionaryは「キー」と「値」をセットで管理できるため、単なる配列では表現しにくいデータ構造を分かりやすく扱える点が大きな魅力です。名前と年齢、商品名と価格、ユーザーIDとユーザー情報など、現実のアプリ開発では頻繁に登場するデータ構造であり、Swiftを学ぶうえで避けて通れない重要な要素と言えるでしょう。

特に初心者のうちは、配列とDictionaryの違いが分かりにくく感じることがあります。しかし、順番で管理する配列と、キーで直接アクセスできる連想配列の違いを意識すると、それぞれの役割がはっきりしてきます。Dictionaryを使えば、必要なデータにすぐアクセスできるため、処理の効率やコードの読みやすさも向上します。

Optionalと型安全がもたらす安心感

Dictionaryを扱ううえで重要だったポイントの一つがOptionalです。キーを指定して値を取得すると、必ずOptional型になる理由は「そのキーが存在しない可能性がある」からでした。この仕組みのおかげで、存在しないデータに無理にアクセスしてアプリがクラッシュするのを防ぐことができます。if letを使った安全な取り出し方を身に付けることで、Swiftらしい堅牢なコードが書けるようになります。

また、型安全という考え方も非常に重要です。Dictionaryでは、キーと値の型をあらかじめ決めておくことで、誤ったデータの混入を防げます。たとえば、年齢を管理するDictionaryに文字列や真偽値が入ってしまうようなミスを、コンパイル時に防止できるのはSwiftの大きな強みです。この型安全のおかげで、規模が大きくなっても安心してコードを保守できるようになります。

Dictionaryを活用した実践的なサンプル


var scores: [String: Int] = [
    "国語": 80,
    "数学": 90,
    "英語": 75
]

// 点数の確認
if let mathScore = scores["数学"] {
    print("数学の点数は\(mathScore)点です")
}

// 点数の更新
scores["英語"] = 85

// 全科目を表示
for (subject, score) in scores {
    print("\(subject):\(score)点")
}

このサンプルでは、科目名をキー、点数を値としてDictionaryを利用しています。キーを使って特定の科目の点数を取り出したり、値を更新したり、すべてのデータをループで処理したりと、Dictionaryの基本操作が一通り確認できます。実際のアプリ開発でも、このような形で設定情報やユーザーデータを管理する場面は非常に多く、今回学んだ知識がそのまま役立ちます。

先生と生徒の振り返り会話

生徒

Dictionaryって難しそうだと思っていましたが、キーと値の関係で考えると分かりやすいですね。配列との使い分けも少しずつ理解できてきました。

先生

それは良い理解ですね。連想配列は現実のデータ構造に近いので、慣れるととても便利に感じるようになります。

生徒

Optionalになる理由も納得できました。存在しないキーに備えることで、安全なコードになるんですね。

先生

その通りです。Swiftは安全性をとても重視している言語なので、Optionalや型安全の考え方を理解すると、一気にレベルアップできますよ。

生徒

これからは、データを管理するときにDictionaryを積極的に使ってみたいです。

先生

ぜひ実際に手を動かしてみてください。Dictionaryを使いこなせるようになると、Swiftでのアプリ開発がぐっと楽になります。

関連セミナーのご案内

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

Windowsで始めるiPhoneアプリ開発入門|Swiftの基本と仕組みを1時間で攻略

「iPhoneアプリを作りたいけれど、Macを持っていないから諦めている」そんな方のための画期的な入門講座です。実は、プログラミングの本質を学ぶのに高価な機材は必要ありません。本講座では、Windowsパソコンを使用し、クラウド環境を活用してAppleの最新言語Swift(スウィフト)の基礎を最短距離でマスターします。

Windowsで実現する開発環境

【つくるもの】
ブラウザ上で動作する「スマート・計算ツール」や「データ判定プログラム」をゼロから作成します。変数の扱いや条件分岐など、iPhoneアプリの内部で動くロジックを自分の手で構築する感動を体験してください。

【開発環境】
ブラウザだけでSwiftが動くプロ仕様のオンラインエディタ(Replit等)を使用します。面倒な設定は一切不要。今あるWindows PCで、プロのエンジニアと同じコードを書き始められます。

この60分で得られる3つの理解

1. WindowsでのSwift実行環境の作り方

OSの壁を越え、クラウドを活用してスマートに学習を開始する「現代的な開発スタイル」を習得します。

2. Swiftの基本構造(変数・型・定数)

iPhoneアプリ特有のデータの扱い方や、Appleが推奨する「安全で美しいコード」の書き方を学びます。

3. アプリエンジニアとしてのロードマップ

将来的にiOSエンジニアとして副業・転職するために必要な準備や、Mac選びのポイントを伝授します。

※本講座は、将来的にiPhoneアプリ開発で収益化や転職を目指したい未経験者のためのエントリー講座です。マンツーマン形式により、Windows環境ならではの疑問にもその場でお答えし、あなたの理解度に合わせて進行します。

セミナー画像

Windowsで始めるiPhoneアプリ開発入門

関連記事:
カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説