#7 Kotlinで学ぶ配列(リスト)の基本

Kotlinには、複数の値をまとめて扱うデータ構造として、変更できる「MutableList」と変更できない「List」という区別があります。この記事では、Kotlinにおけるリストの基本的な使い方と、よく使う操作を解説します。

変更できないList

Kotlinで単純にリストを作ると、後から中身を変更できないListになります。

val fruits = listOf("りんご", "みかん", "ぶどう")
println(fruits.size) // 3

変更できるMutableList

値を追加・削除したい場合は、mutableListOfを使います。

val fruits = mutableListOf("りんご", "みかん", "ぶどう")
fruits.add("メロン")
fruits.remove("みかん")

要素にアクセスする・繰り返す

println(fruits[0])

for (fruit in fruits) {
    println(fruit)
}

0から始まる添字を使ってアクセスするのは、他の言語と同じです。

リストを加工する

すべての要素に処理をしたい場合はmap、条件に合う要素だけ残したい場合はfilterが使えます。

val upper = fruits.map { it.uppercase() }
val longNames = fruits.filter { it.length > 2 }

mapやfilterは、元のList・MutableListどちらに対しても使え、常に新しい変更不可のListを返します。

Kotlinならではの注意点

Kotlinでは、変数のval・varだけでなく、リスト自体にも「変更できるか」という区別があります。val fruits = mutableListOf(...)と書いた場合、fruitsという変数自体は別のリストに入れ替えられませんが、リストの中身(要素)は変更できる、という2段階の考え方を理解しておくことが大切です。関数の引数として渡す際も、変更してほしくないリストはList型で受け取ることで、意図しない書き換えを防げます。

先頭・末尾の要素を取り出す

先頭の要素はfirst()、末尾の要素はlast()で安全に取得できます。

println(fruits.first()) // りんご
println(fruits.last())  // ぶどう

空のリストかもしれない場合は、例外を投げないfirstOrNull()を使うとより安全です。

まとめ

Kotlinのリストは、変更できないListと変更できるMutableListを使い分けます。map・filterによる加工も含め、基本的にはListを使い、必要な場合だけMutableListを選ぶのがKotlinらしい書き方です。


本ページはプロモーションを含みます。

参考書籍(PR)

Kotlinをもっと学びたい方には「やさしいKotlin入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本