【Swift】辞書型(Dictionary)をキー値でソートさせる方法!sortedメソッドの使い方

この記事からわかること
- SwiftでDictionary(辞書型)をソートさせる方法
- sortedメソッドの使い方
- キー値を昇順/降順に並び替えるには?
- Set型をソートさせる方法
index
[open]
\ アプリをリリースしました /
辞書型はforで回すと順番が保証されない?
Swiftで扱えるデータ型の中でもキー値と値でデータを管理できる辞書型は便利ですが、取り扱いには注意が必要です。
配列の場合はfor
文などで回した場合元の順序の通りに出力されます。しかし辞書型(Dictionary)の場合は元のデータの順序は保証されません。なので表示するたびに異なる結果になってしまいます。
これを防ぐには定義した辞書型をソートさせます。
Swiftで辞書型(Dictionary)をソートさせる方法
Swiftで辞書型(Dictionary)をソートさせるにはsorted(by:)
メソッドを使用します。このメソッドを使用すると元の辞書型はそのままに新しくソートされた辞書型を返します。ちなみに配列の場合はsort
メソッドです。
第一引数のby
にクロージャ形式のソート条件を渡します。クロージャ内では$数値
で中の要素へアクセスが可能になっています。キー値を参照する場合は$0.key
、値を参照する場合は$0.value
と記述します。
キー値を昇順に並び替える
例えばキー値を昇順に並び替えるには以下のように$0.key < $1.key
とします。
キー値でソートをかける場合は$0.key
と明示的に指定しなくても<
(比較演算子)を指定するだけでもOKです。
キー値を降順に並び替える
キー値を降順に並び替えるには以下のように$0.key > $1.key
とします。
値を昇順に並び替える
値を昇順に並び替えるには以下のように$0.value < $1.value
とします。
値を降順に並び替える
値を降順に並び替えるには以下のように$0.value > $1.value
とします。
Set型にも使用可能
sortedメソッド
は配列には使用できませんが順序を保証しないSet
型にも使用できます。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。