【Kotlin入門】ストリーム式の処理

Kotlin
スポンサーリンク

こんにちは😀

今回は、ストリーム式の処理をみてみます。

例えば関数mapとfilterを使う場合、戻り値は処理をされたリストとし、filterで処理し、さらにmapで処理するように続けて関数を用います。
このような処理の流れの方式をストリームと言います。

では、ストリーム式も書いてみましょう。
以下の処理の4行目がfilterとmapを組み合わせた関数になります。
filterでlistAの要素の8より下の数字を取り出します。
mapでその要素を文字列「数字」と合わせています。

fun main(args: Array<String>) {

val listA = listOf(1,3,5,7,9,11,13)
val listB = listA.filter{it<8}.map{“数字”+it}

println(“A:”+listA.toString())
println(“B:”+listB.toString())
}

実行すると以下のように、「数字」の文字列と数字が順に出力されます。
ストリーム式1−1

さらに以下の文では、上記のストリーム式にforEach関数を足しています。
この関数は、for文を使わずにリストが関数を呼ぶ形で繰り返し処理を行います。
ここでは、リストから取り出した要素が8より下なら文字列「数字」を足し、その要素を1つ1つ出力しています。

fun main(args: Array) {

val listA = listOf(1,3,5,7,9,11,13)
listA.filter{it<8}.map{“数字”+it}.forEach { println(it) }
}

実行します。
繰り返し処理が行われ、条件に一致した要素が順に出力されています。
ストリーム式1−2

次は、filterにjoinToString関数を追加して使ってみます。
この関数も、リストの要素を繰り返しセットして出力しています。
定義は1行目で行い、出力は2行目で行なっています。

val listF = listA.filter{(it<8)}.joinToString(” < “) { “$it” }
println(“F:”+listF)

実行すると、該当の要素が順に出力されます。
ストリーム式1−3

ストリーム式やforEachなどの繰り返しを行う関数を使うことで、多少複雑な処理も1行で書くことができます。

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】

コメント

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