SwiftでのMapと連想配列応用|配列・Dictionaryの便利メソッド活用
この記事でわかること
- SwiftでのMap操作の基本と応用
- 配列やDictionaryに対する
map、filter、reduceの使い方 - キーと値を使った変換やデータ整理テクニック
- 実用例で学ぶデータ処理の効率化
SwiftのMapとは
Swiftではmapというメソッドを使うことで、配列や辞書の要素を変換することができます
- 配列に対しては「各要素を変換して新しい配列を作る」
- Dictionaryに対しては「値を変換して新しいDictionaryを作る」
map以外にも、filterやreduceを組み合わせると、データ処理がもっと柔軟になります
配列でのMap応用
基本
let numbers = [1, 2, 3, 4, 5]
let squaredNumbers = numbers.map { $0 * $0 } // [1, 4, 9, 16, 25]Filterと組み合わせ
let evenSquares = numbers.filter { $0 % 2 == 0 }.map { $0 * $0 } // [4, 16]Reduceで合計を計算
let sum = numbers.reduce(0, +) // 15DictionaryでのMap応用
値だけ変換
let capitals = ["日本": "東京", "フランス": "パリ"]
let upperCapitals = capitals.mapValues { $0.uppercased() }
// ["日本": "東京", "フランス": "PARIS"]条件付きで抽出して変換
let filteredCapitals = capitals
.filter { $0.key.hasPrefix("日") }
.mapValues { $0 + "市" }
// ["日本": "東京市"]実践的なデータ整理テクニック
文字列配列をDictionaryに変換
let fruits = ["りんご", "みかん", "バナナ"]
let fruitLengths = Dictionary(uniqueKeysWithValues: fruits.map { ($0, $0.count) })
// ["りんご": 3, "みかん": 3, "バナナ": 3]Dictionaryをソート
let sortedCapitals = capitals.sorted { $0.key < $1.key }
for (country, capital) in sortedCapitals {
print("\(country): \(capital)")
}Dictionaryの値の集計
let sales = ["A": 100, "B": 200, "C": 150]
let totalSales = sales.values.reduce(0, +) // 450まとめ
SwiftのmapやmapValuesを使うと、配列やDictionaryの要素を簡単に変換できるfilterやreduceと組み合わせると、条件抽出や集計などの高度なデータ処理も効率的に行える
実務でよくあるデータ整理・変換の多くは、この組み合わせでシンプルに書ける
慣れてくると、「一度に変換・集計・フィルタリング」がスマートにできるので、コードがすごく読みやすくなる