Kotlinでは、リスト内のnull
を削除するために filterNotNull
という便利な関数が用意されています。従来のfilter { it != null }
のような処理をより簡潔に記述できるため、可読性の向上にもつながります。
filterNotNullの基本的な使い方
filterNotNull
は、リストの中に含まれる null
をすべて取り除いた新しいリストを作成する関数です。
Kotlin
val numbers: List<Int?> = listOf(1, 2, null, 4, null, 6)
val nonNullNumbers = numbers.filterNotNull()
println(nonNullNumbers) // 出力: [1, 2, 4, 6]
このように、元のリストからnull
を削除し、新しいリストとして取得できます。
filterNotNullの活用例
1. データベースやAPIからのデータ処理
データ取得時にnull
が含まれる可能性がある場合、filterNotNull
を活用すると安全にデータ処理ができます。
Kotlin
val userNames: List<String?> = listOf("田中", null, "佐藤", "鈴木", null)
val validUserNames = userNames.filterNotNull()
println(validUserNames) // 出力: [田中, 佐藤, 鈴木]
2. リストのデータ変換と組み合わせる
map
と組み合わせることで、変換後のデータをnull
なしで取得できます。
Kotlin
val rawData = listOf("123", "456", null, "789", "abc")
val numbers = rawData.mapNotNull { it?.toIntOrNull() }
println(numbers) // 出力: [123, 456, 789]
このように、mapNotNull
を使うと、変換時に発生するnull
も自動的に除去できます。
3. 可変リストでの適用
MutableList
にも適用でき、不要なnull
を削除できます。
Kotlin
val mutableList: MutableList<String?> = mutableListOf("Apple", null, "Banana", "Cherry", null)
mutableList.removeAll { it == null }
println(mutableList) // 出力: [Apple, Banana, Cherry]
filterNotNullのメリット
- 冗長な
filter { it != null }
を省略できる - 可読性が向上し、コードの意図が明確になる
- データ処理の安全性が向上する
KotlinのfilterNotNull
を活用して、スマートなnull
処理を実現しましょう!