filterNotNullでnullをスマートに処理

Kotlin
記事内に広告が含まれる場合があります

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のメリット

  1. 冗長なfilter { it != null } を省略できる
  2. 可読性が向上し、コードの意図が明確になる
  3. データ処理の安全性が向上する

KotlinのfilterNotNullを活用して、スマートなnull処理を実現しましょう!

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