サイトアイコン ハジカラ

【Kotlin入門】filter関数を使ってみる

こんにちは😀

今回もリストとラムダ式をみていきます。

前回はリストでmap関数を使用しましたが、今回はfilter関数を使用します。
filter関数は、引数がラムダ式で、戻り値をBoolean型にします。

以下の処理は、3行目でリストを定義し、5行目でfilter関数を使っています。
引数のラムダ式は、前回も使用した「it」を使用しています。
itを使用すると処理を省略して書くことができます。
リストの要素が「2より上」であればtrueになり、要素を出力します。

fun main(args: Array<String>) {

val listA = listOf(1,3,5)
val listB = listA.filter{it > 2}

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

実行すると、Bの出力は2より大きい「3」と「5」になります。

続けて、他にもfilter関数を追加して書いてみましょう。
4行目と5行目は、リストの要素数を比較して判定しています。
4行目は要素数が1より大きければtureになり、5行目は3より大きければtureになります。
listAは要素数3になるので、5行目はfalseになります。
6行目は、要素がInt型であるかを判定しており、Int型であればfalseになります。
listAの要素は全てInt型なので、判定はfalseになりますね。

fun main(args: Array<String>) {

   ・・・・・・・省略・・・・・・・・
val listC = listA.filter{listA.size > 1}
val listD = listA.filter{listA.size > 3}
val listE = listA.filter{_:Int->false}

・・・・・・・省略・・・・・・・・
println(“C:”+listC.toString())
println(“D:”+listD.toString())
println(“E:”+listE.toString())
}

実行します。
DとCは判定がfalseになるため出力がありません。

filter関数は判定と合わせて使用できるので、map関数とは違う使い方ができ、処理の幅が広がりますね。

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】

モバイルバージョンを終了