Inuverse Sci. X Tech. Blog

← ブログ一覧

Kotlin in Action 6章 メモ①

#Kotlin

メソッドまとめ

Kotlin in Action 6章の1節で学んだコレクションに作用するメソッドを表としてまとめる:

メソッド名説明返り値
filterラムダがtrueを返したものを選ぶList<T>
filterNotラムダがfalseを返したものを選ぶList<T>
map要素を変換する(写像と同じだね)List<R>
filterIndexedインデックスと要素を引数にとるラムダがtrueの要素を返すList<T>
mapValuesMap型の値を変換するMap<K, V>
reduceaccumulatorと次の要素をラムダで畳み込む(初期値は先頭要素)T
foldreduceに似ているが、初期値と戻り値の型を自由に指定できるR
runningReducereduceの途中経過を全てリストにするList<T>
runningFoldfoldの途中経過を全てリストにするList<R>
partitionラムダのtrue/falseで要素を2つのリストに分けるPair<List<T>, List<T>>
groupByラムダの戻り値をキーにグループ分けしたMapを作るMap<K, List<T>>
filterValuesMap型の値をラムダでフィルタリングするMap<K, V>
associate各要素をラムダでPair<K, V>に変換しMapを作るMap<K, V>
associateWith元の要素をキー、ラムダの結果を値とするMapを作るMap<T, V>
associateByラムダの結果をキー、元の要素を値とするMapを作るMap<K, T>
replaceAllMutableListの全要素をラムダの結果で置き換えるUnit
fillMutableListの全要素を指定した値で上書きするUnit
ifEmptyコレクションが空のときにラムダの結果を返す(空でなければ自身を返す)C
windowed指定サイズのスライディングウィンドウ(部分リスト)のリストを返すList<List<T>>
chunkedコレクションを指定サイズのチャンクに分割するList<List<T>>
zip2つのコレクションを要素ごとにPairにまとめたリストを返すList<Pair<T, R>>
flatMap各要素をコレクションに変換し、それを平坦化して1つのリストにするList<R>
flattenコレクションのコレクションを平坦化して1つのリストにするList<T>

reduce

val list = listOf(1, 2, 3, 4)
val summed = list.reduce { acc, element ->
    println("acc: $acc, element: $element")
    acc + element
}
// acc: 1, element: 2
// acc: 3, element: 3
// acc: 6, element: 4
// 10

fold

val folded = people.fold("") { acc, person ->
        println("acc: $acc, person: $person")
        acc + person.name
}
// acc: , person: Person(name=Alex, age=29)
// acc: Alex, person: Person(name=Natalia, age=28)
// AlexNatalia

← ブログ一覧