はじめに
Kotlinではリスト(List)と可変リスト(MutableList)という2種類のデータ構造がよく使われます。プログラムの中でリストを使うことで、複数の要素を1つの変数にまとめて管理できるようになります。この記事では、KotlinのListとMutableListの違いや、具体的な使い方を説明していきます。
Listとは?
Listは、一度作成すると中身を変更できない、読み取り専用のリストです。リストの要素を追加したり削除したりすることができません。そのため、要素が変わることのないデータの集まりを扱う場合に使います。
Listの特徴:
- 読み取り専用 (要素の変更はできない)
- 順序を持つコレクション
- 重複した要素を含むことができる
Listの基本的な使い方
Kotlin
fun main() {
val fruits: List<String> = listOf("Apple", "Banana", "Cherry")
println(fruits) // [Apple, Banana, Cherry]
//リストの要素にアクセスする
println(fruits[0]) // Apple
//イテレーション (ループで要素を処理)
for (fruit in fruits) {
println(fruit)
}
//fruits.add("Orange")
//↑これはコンパイルエラーとなる。要素の追加はできません。
}
Listを使う場面
- データが変更されないとき
- データの整合性を保ちたいとき
- 不要な変更を防ぎたいとき
MutableListとは?
MutableListは、リストの要素を追加、削除、変更できるリストです。Listと違い、作成後に中身を変更できるため、動的なリストが必要な場合に使います。
MutableListの特徴:
- 要素を自由に追加・削除・変更できる
- 順序を持つコレクション
- 重複した要素を含むことができる
MutableListの基本的な使い方
Kotlin
fun main() {
val fruits: MutableList<String> = mutableListOf("Apple", "Banana", "Cherry")
println(fruits) // [Apple, Banana, Cherry]
//要素の追加
fruits.add("Orange")
println(fruits) // [Apple, Banana, Cherry, Orange]
//要素の削除
fruits.remove("Banana")
println(fruits) // [Apple, Cherry, Orange]
//要素の変更
fruits[0] = "Mango"
println(fruits) // [Mango, Cherry, Orange]
//イテレーション (ループで要素を処理)
for (fruit in fruits) {
println(fruit)
}
}
MutableListを使う場面
- データが頻繁に更新される場合
- ユーザーからの入力や動的に変化するデータを扱うとき
- 要素を順次追加・削除したい場合
ListとMutableListの違いを整理
特徴 | List | MutableList |
変更可能か | 不可 | 可能 |
要素の追加 | 不可 | 可能 |
要素の削除 | 不可 | 可能 |
使用例 | 変更のないデータの管理 | ユーザー入力、動的リスト |
まとめ
kotlinでは、データの性質や用途に応じてListとMutableListを使い分けます。Listは変更不可能なリストを扱うため、安全性が高く、データの整合性を保つのに向いています。一方、MutableListは、動的な変更が必要な場合に便利です。
最初はMutableListを使うほうが簡単に感じるかもしれませんが、プログラムの信頼性を高めるには、Listを優先して使い、必要な場合にのみMutableListを使用することをお勧めします。
これで、KotlinにおけるListとMutableListの基礎はマスターです。今後の開発にぜひ活用してみてください!

MutableList「人は変わらないって?僕は毎日、要素を変えまくってるよ!」
コメント