公開日:2020/02/07更新日:2020/08/03
【Kotlin基礎】KotlinでMutableListを使う方法を解説

- KotlinでMutableListはどうやって使うの?
- MutableListの便利な使用法が知りたい。
- ListとMutableListの違いが知りたい。
このような悩みを抱えている方、いらっしゃいませんか?
Mutableは「可変な」という意味で、KotlinのMutableListは、要素の変更が可能なListのことをいいます。
本記事では、そんなMutableListの使い方を、サンプルコードを交え、わかりやすく解説致します。
目次
KotlinでMutableListを使う方法
ListとMutableListの違いについて
ListとMutableListの違いについてですが、その違いは、リストの書き換えが可能かどうかの違いです。
冒頭でもお話したようにMutableとは「可変な」という意味で、MutableListは、要素の追加や削除、入れ替えなどができます。
一方Listは読み取り専用で、要素を変更することができません。
また、MutableListはListを継承しているため、基本的な使い方は2つとも同じです。
ですので、本記事では、MutableListならではの要素の追加や削除、入れ替えの方法を解説し、要素数の取得や並び替えの方法など、Listと共通の使い方については、以下の記事をご覧頂けたらと思います。
MutableListの基本的な使い方
MutableListの初期化
MutableListの初期化には、mutableListOf()関数を使用します。
- Kotlin
val list = mutableListOf<String>("りんご", "ゴリラ", "ラッパ")
要素をカンマ(, )で区切って、要素を列挙します。
また、Kotlinでは推論が可能なので、<String>の型を明記する部分を省略することができます。
要素の参照
要素を参照するには[番号]を使用する方法と、get(番号)を使用する方法の2通りがあります。
- Kotlin
val list = mutableListOf<String>("りんご", "ゴリラ", "ラッパ")
println(list[0])
println(list.get(1))
// りんご
// ゴリラ
ここで注目していただきたいのは、”りんご”を参照するのに、0を指定している所です。
Listや配列では、番号(index)は0から始まります。ですから、最後の”ラッパ”を参照するにはlist.get(2)のように、2を指定する必要があります。
この事を忘れており、最後の要素だからと、listの要素数の3を指定してしまうとエラーとなってしまうので、注意が必要です。
【公式ドキュメント】 : mutableListOf – Kotlin Programming Language
- MutableListの初期化には、mutableListOf()関数を使用する
- 要素の取得は、[番号]か、get(番号)を使用する
- MutableListの番号(index)は、0から始まる
要素を追加する方法
続いて、要素を追加する方法を紹介致します。
リストの最後に要素を追加する方法
まずは、一番基本的な方法である、リストの最後に要素を追加する方法についてです。リストの最後に要素を追加するには、add(要素)を使用します。
- Kotlin
val list = mutableListOf("リンゴ", "ゴリラ", "ラッパ")
list.add("パンダ")
for(item in list) {
println(item)
}
// リンゴ
// ゴリラ
// ラッパ
// パンダ
すでに初期化されたlistに対し、add()で”パンダ”を追加しました。
リストの任意の位置に要素を追加する方法
続いて、リストの任意の位置に要素を追加する方法についてです。リストの任意の位置に要素を追加するには、add(番号, 要素)を使用します。
- Kotlin
val list = mutableListOf("リンゴ", "ゴリラ", "ラッパ")
list.add(2, "パンダ")
for(item in list) {
println(item)
}
// リンゴ
// ゴリラ
// パンダ
// ラッパ
先ほどの最後に追加する方法とは違い、番号(index)を指定することで、任意の位置に要素を追加することができます。
リストにリストを追加する方法
最後に、リストにリストを追加する方法です。リストにリストを追加するには、addAll(リスト)を使用します。
- Kotlin
val list1 = mutableListOf("リンゴ", "ゴリラ", "ラッパ")
val list2 = listOf("ダチョウ", "ウサギ")
list1.addAll(list2)
for(item in list1) {
println(item)
}
// リンゴ
// ゴリラ
// ラッパ
// ダチョウ
// ウサギ
先ほどの任意の場所に要素を追加する方法のように、addAll(番号, リスト)とすることで、任意の場所にリストを追加することもできます。
- リストの最後に要素を追加するには、add(要素)を使用する
- リストの任意の位置に要素を追加するには、add(番号, 要素)を使用する
- リストにリストを追加を追加するには、addAll(リスト)を使用
要素を削除する方法
続いて、要素を削除する方法を紹介致します。
削除する要素を指定して削除する方法
まずは、削除する要素を指定して削除する方法についてです。削除する要素を指定して削除するには、remove(要素)を使用します。
- Kotlin
val list = mutableListOf("リンゴ", "ゴリラ", "ラッパ")
list.remove("リンゴ")
for(item in list) {
println(item)
}
// ゴリラ
// ラッパ
指定した要素と等しい要素を削除します。等しい要素がない場合は何も削除されません。
削除する番号を指定する方法
続いて、削除したい要素の番号を指定して削除する方法についてです。番号指定で削除するには、removeAt(番号)を使用します。
- Kotlin
val list = mutableListOf("リンゴ", "ゴリラ", "ラッパ")
list.removeAt(1)
for(item in list) {
println(item)
}
// リンゴ
// ラッパ
番号指定で削除するので、get()で要素を参照する時のように、要素が存在しない番号を指定するとエラーとなりますので、注意が必要です。
リストからリストを削除する方法
続いて、リストからリストを削除する方法についてです。リストからリストを削除するには、removeAll(リスト)を使用します。
- Kotlin
val list1 = mutableListOf("リンゴ", "ゴリラ", "ラッパ")
val list2 = mutableListOf("リンゴ", "ラッパ")
list1.removeAll(list2)
for(item in list1) {
println(item)
}
// ゴリラ
全ての要素を削除する方法
最後に、全ての要素を削除する方法についてです。全ての要素を削除するには、clear()を使用します。
- Kotlin
val list = mutableListOf("リンゴ", "ゴリラ", "ラッパ")
list.clear()
for(item in list) {
println(item)
}
// 何も出力されない
- 削除する要素を指定して削除するには、remove(要素)を使用する
- 削除する番号を指定する方法するには、remove(番号)を使用する
- リストからリストを削除するには、removeAll(リスト)を使用する
- 全ての要素を削除するには、clear()を使用する
要素を入れ替える方法
最後に、リストの要素を入れ替える方法について紹介致します。リストの要素を入れ替えるには、set(番号, 要素)を使用します。
- Kotlin
val list = mutableListOf("リンゴ", "ゴリラ", "ラッパ")
list.set(0, "ミカン")
for(item in list) {
println(item)
}
// ミカン
// ゴリラ
// ラッパ
番号に0を指定しているので、”リンゴ”が”ミカン”に変更されております。
- リストの要素を入れ替えるには、set(番号, 要素)を使用する
まとめ
- MutableListの初期化には、mutableListOf()関数を使用する
- 要素の取得は、[番号]か、get(番号)を使用する
- MutableListの番号(index)は、0から始まる
- リストの最後に要素を追加するには、add(要素)を使用する
- リストの任意の位置に要素を追加するには、add(番号, 要素)を使用する
- リストにリストを追加を追加するには、addAll(リスト)を使用
- 削除する要素を指定して削除するには、remove(要素)を使用する
- 削除する番号を指定する方法するには、remove(番号)を使用する
- リストからリストを削除するには、removeAll(リスト)を使用する
- 全ての要素を削除するには、clear()を使用する
- リストの要素を入れ替えるには、set(番号, 要素)を使用する
関連記事