【Kotlin/Android Studio】配列(list)をフィルタリングする方法!filterNot/filterNotNull/filterIndexed

この記事からわかること

  • Kotlin/Android Studio配列(リスト)をフィルタリングする方法
  • filterメソッド使い方
  • filterNot/filterNotNull/filterIndexedの使い方

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

配列を条件に合致する要素のみにフィルタリング:filter

Kotlinで配列(リスト)を条件に合致する要素のみにフィルタリングするにはfilterメソッドを使用します。フィルタリング条件はラムダ式(無名関数)内で指定します。ラムダ式内ではitでリスト内の要素に参照することが可能です。

val list = listOf(10, 4, 5, 1, 2, 7, 9)
// 偶数のみにフィルタリング
val filteredList = list.filter { it % 2 == 0 }
print(filteredList) // [10, 4, 2]

配列を条件に合致しない要素のみにフィルタリング:filterNot

filterとは違い条件に合致しない要素のみにフィルタリングしたい場合はfilterNotメソッドを使用します。条件はラムダ式で指定します。

val list = listOf(10, 4, 5, 1, 2, 7, 9)
// 5以下のみにフィルタリング
val filteredList = list.filterNot { it > 5 }
print(filteredList) // [4, 5, 1, 2]

nullでない要素のみにフィルタリング:filterNotNull

nullでない要素のみにフィルタリングしたい場合はfilterNotNullメソッドを使用します。


val list = listOf(10, null, 4, null, 5, 1, 2, null, 7, 9)
// nullでない要素のみにフィルタリング
val filteredList = list.filterNotNull()
print(filteredList) // [10, 4, 5, 1, 2, 7, 9]

インデックスも条件に含めてフィルタリング:filterIndexed

配列のインデックスも条件に含めてしたい場合はfilterIndexedメソッドを使用します。ラムダ式の中で2つの引数を受け取れるのでindexvalueとすることでインデックスと要素を参照することが可能です。

val list = listOf(10, 4, 5, 1, 2, 7, 9)
// 偶数のインデックスかつ5以上のみにフィルタリング
val filteredList = list.filterIndexed { index, value -> index % 2 == 0 && value > 5 }
print(filteredList) // [10, 5, 7]

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index