Kotlin 配列ListとMutableListの役目と使い方

Kotlin×Android

はじめに

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の違いを整理

特徴ListMutableList
変更可能か不可可能
要素の追加不可可能
要素の削除不可可能
使用例変更のないデータの管理ユーザー入力、動的リスト

まとめ

kotlinでは、データの性質や用途に応じてListとMutableListを使い分けます。Listは変更不可能なリストを扱うため、安全性が高く、データの整合性を保つのに向いています。一方、MutableListは、動的な変更が必要な場合に便利です。

最初はMutableListを使うほうが簡単に感じるかもしれませんが、プログラムの信頼性を高めるには、Listを優先して使い、必要な場合にのみMutableListを使用することをお勧めします。

これで、KotlinにおけるListとMutableListの基礎はマスターです。今後の開発にぜひ活用してみてください!

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

コメント

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