Swift : コレクション(辞書)を使う

2 min read読了の目安(約2000字

はじめに

以下の人を対象に書いています。

  • Swiftをあまり触ったことのない方
  • Dictionaryの使い方を知りたい方

環境

この記事の情報は以下のバージョンで動作確認しています。

  • Xcode 12.3 (12C33)
  • Swift 5.3.2

辞書とは(Dictionary)

キーと値を管理するコレクションで、ユニークなキーに紐づく値を格納します。
その名の通り辞書のように、キーから値を取得したり登録したり情報を管理したい場合に使用します。

値を登録するには 型がHashableプロトコルに準拠している必要があります。Hashableプロトコルは整数のハッシュ値を提供し、一意なユニークな値として扱いたい場合に使用するプロトコルです。標準ライブラリの多くの型はデフォルトでHashableに準拠していますが、独自のクラスを使用する場合は準拠するようにしてください。

生成(空)

空の辞書を生成する場合の実装例です。
変数の型を指定しなくても生成が可能です。

// 例1
var persons: Dictionary<String,Int> = Dictionary<String,Int>()

// 例2
var persons2: Dictionary = Dictionary<String,Int>()

// 例3
var persons3 = Dictionary<String,Int>()

生成(初期値あり)

初期値を入れた辞書を生成する場合の実装例です。
こちらも変数の型を指定しなくても生成が可能です。

// 例1
var persons4: Dictionary<String,Int> = ["Yamada":20,"Suzuki":15,"Kai":25] // 型指定あり

// 例2
var persons5: [String:Int] = ["Yamada":20,"Suzuki":15,"Kai":25] // 型指定あり

キー&値を追加(設定)

辞書にキーと値を追加する場合の実装例です。
キーと値をセットで設定します。
既に追加済みのキーが設定されている場合は値が上書きされます。

// キー:"Matsuura" 値:14 を登録
persons["Matsuura"] = 14

// キー:"Horiuchi" 値:21 を登録
persons["Horiuchi"] = 21

// キー:"Anma" 値:30 を登録
persons["Anma"] = 30

キー&値を削除

辞書から指定したキーと値を削除する場合の実装例です。
削除する場合はキーのみを指定します。

// キー:"Anma" を削除
persons.removeValue(forKey: "Anma")

キー&値を全て削除

辞書に登録されている全ての情報を破棄する場合の実装例です。

persons.removeAll()

値の取得

辞書に登録されている値を取得する場合の実装例です。
取得する場合はキーを指定します。

// 例1
var age: Int? = persons["Horiuchi"]

// 例2
var age2: Int = persons["Horiuchi"]!

繰り返し処理

繰り返して処理を行う場合の実装例です。

// 繰り返し処理:キーと値
for (name, age) in persons {
   print(name)
   print(age)
}

ソート(キー順に並び替え)

キー順に並び替える場合の実装例です。

// ソート:キー順に並び替え
var sortedPersons = persons.sorted() { $0.0<$1.0 }

キーの存在確認

辞書に追加したキーが存在するかチェックする実装例です。

// 例1
let isExist2 = persons["Yamada"] != nil

// 例2
let isExist: Bool = persons.keys.contains("Horiuchi")

空かどうか取得

辞書が空かどうか取得する実装例です。

// 空かどうか取得
let isEmpty: Bool = persons.isEmpty

最後に

今回はよく使う辞書の使い方について解説しました。
昨日追加により新しい機能が追加された場合は、本記事に追記したいと思います。