flatMapを活用してネストされたリストをフラットにする

Kotlin
記事内に広告が含まれる場合があります

Kotlinには、リストの中にリストが含まれるような ネストされたデータ構造をフラットに変換 できる flatMap という便利な関数があります。

flatMapの基本的な使い方

1. ネストされたリストをフラット化

Kotlin
val nestedList = listOf(
    listOf(1, 2, 3),
    listOf(4, 5),
    listOf(6, 7, 8)
)

val flatList = nestedList.flatMap { it }

println(flatList) // 出力: [1, 2, 3, 4, 5, 6, 7, 8]

このように、flatMap を使うと リストのリスト を 1 つのリストに統合できます。


2. 各要素を変換しながらフラット化

Kotlin
val words = listOf("Hello", "World")

val chars = words.flatMap { it.toList() }

println(chars) // 出力: [H, e, l, l, o, W, o, r, l, d]

flatMap を使うことで、各単語を文字のリストに変換しつつ、それを 1 つのリストにまとめることができます。


3. フィルタリングと組み合わせる

Kotlin
val numbers = listOf(1, 2, 3, 4, 5)

val multipliedEvenNumbers = numbers.flatMap { num ->
    if (num % 2 == 0) listOf(num * 2) else emptyList()
}

println(multipliedEvenNumbers) // 出力: [4, 8]

このように、flatMap を使えば 特定の条件を満たす要素のみ変換してフラットなリストを作成 できます。


flatMapを活用するメリット

  1. ネストされたリストを簡単にフラット化できる
  2. 要素の変換とフラット化を同時に処理できる
  3. フィルタリングと組み合わせて柔軟なデータ変換が可能

複雑なリストの処理をシンプルに記述したい場合は、ぜひ flatMap を活用してみてください!

タイトルとURLをコピーしました