🗂

kotlin.collectionsの紹介〜初心者編〜

2021/12/13に公開

こんにちは、株式会社イエソドのtsukakeiです

これはKotlin Advent Calendar 2021 8日目の記事です

みなさん、Kotlinは好きですか?私は大好きです!

Kotlinではコレクション系の便利メソッドを標準ライブラリとして提供してくれています
なかなか他の言語にはないメソッドも多くあるので紹介したいと思います!
ちなみに、今回は初心者編です

コレクションにはList・Map・Setの3種類があります
これは他のプログラミング言語とも共通な概念なので説明は割愛します

Kotlinでは、読み取り専用のコレクションとミュータブルなコレクションがあります
裏の実装は同じですが、インタフェースによって読み取り専用のコレクションは要素の追加・修正・削除ができないようになっています
読み取り専用のコレクションがListMapSetで、ミュータブルなコレクションがMutableListMutableMapMutableSetになります

ファクトリメソッド

各コレクションのインスタンスを作成するためのメソッドです

List Map Set
読み取り専用 listOf mapOf setOf
ミュータブル mutableListOf mutableMapOf mutableSetOf

ちなみに、初心者編のレベルではないですが、nullを取り除いてくれるlistOfNotNullmapOfNotNullsetOfNotNullというメソッドもあります

kotlin
fun main() {
  val list = listOfNotNull(1, null, 2)
  println(list) // [1, 2]
}

forEach

forEachは、渡したactionをコレクションの各要素に対して実行します

fun main() {
   val list = listOf(1, 2, 3)
   list.forEach { println(it) }
}
1
2
3

map

mapは、渡したtransformをコレクションの各要素に対して実行し、その結果を収納したListを返します

fun main() {
   val numbers = listOf(1, 2, 3)
   val doubleNumbers = numbers.map { it * 2 }
   pinrtln(doubleNumbers) // [2, 4, 6]
}

filter

filterは、渡したpredicateをコレクションの各要素に対して実行し、trueになった要素のみを収納したListを返します

fun main() {
   val numbers = listOf(1, 2, 3)
   val evenNumbers = numbers.filter { it % 2 == 0 }
   pinrtln(evenNumbers) // [2]
}

おわりに

今回は初心者編ということで基本的なメソッドばかり取り上げてみました!
次回は初級編をお届けしたいと思います
ありがとうございました!

Discussion