マッピング

Kotlinの「マッピング(mapping)」とは、コレクションの各要素に対して特定の変換処理を行い、新しいコレクションを生成する操作のことです。主にmap関数を使用して実現されます。


1. map関数の基本構文

kotlin
val result = originalCollection.map { element -> 変換処理 }
  • originalCollection: 元のリストやセットなどのコレクション。

  • map関数は各要素に変換処理を適用して新しいリストを返す(元のコレクションは変更されない)。


2. 使用例(基本的な変換)

kotlin
val numbers = listOf(1, 2, 3, 4) val squared = numbers.map { it * it } println(squared) // [1, 4, 9, 16]

この例では、各要素を2乗する処理をmapで適用しています。


3. データクラスとの組み合わせ

kotlin
data class Person(val name: String, val age: Int) val people = listOf( Person("Alice", 28), Person("Bob", 35) ) val names = people.map { it.name } println(names) // [Alice, Bob]

このように、データクラスの特定のプロパティだけを抽出する用途にも使えます。


4. ネストしたコレクションの変換

kotlin
val matrix = listOf( listOf(1, 2), listOf(3, 4) ) val doubledMatrix = matrix.map { row -> row.map { it * 2 } } println(doubledMatrix) // [[2, 4], [6, 8]]

mapは入れ子のコレクションにも再帰的に適用できます。


5. mapIndexed:インデックスも利用した変換

kotlin
val words = listOf("a", "b", "c") val indexedWords = words.mapIndexed { index, word -> "$index: $word" } println(indexedWords) // ["0: a", "1: b", "2: c"]

6. mapNotNull:nullを除外する変換

kotlin
val raw = listOf("1", "a", "3") val parsed = raw.mapNotNull { it.toIntOrNull() } println(parsed) // [1, 3]

失敗した変換結果(null)を除外しながらマッピングを行う場合に有効です。


まとめ

Kotlinのマッピング操作は、関数型プログラミングの考え方に基づいており、副作用を避けながらデータを変換するのに非常に適しています。map, mapIndexed, mapNotNullなどのバリエーションを活用することで、柔軟で安全なデータ処理が可能になります。

生成日:2025/05/04