0Pricing
Kotlin Academy · レッスン

mutableListOf、mutableMapOf:可変コレクションの構築

可変コレクションを作成し、安全に変更します。

「mutableListOf、mutableMapOf:可変コレクションの構築」はCoddyKit上の無料Kotlin Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはKotlin Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Kotlin Academyコースには全4レッスンが含まれています。

変更が必要な場合

可変コレクションでは、要素の追加、削除、更新ができます。コレクションが時間とともに増えたり変化したりする場合に使用してください。

mutableListOf

mutableListOfはArrayListを基盤とするMutableListを作成します。要素の追加、削除、置換ができます。
val list = mutableListOf("a", "b", "c")
list.add("d")
list.add(0, "z")  // insert at index 0
list.remove("b")
println(list)  // [z, a, c, d]

mutableSetOf

mutableSetOfはMutableSetを作成します。要素がすでに存在する場合、addはfalseを返します。
val set = mutableSetOf(1, 2, 3)
set.add(4)
set.add(2)  // already exists, no change
set.remove(1)
println(set)  // [2, 3, 4]

mutableMapOf

mutableMapOfはMutableMapを作成します。挿入や更新にはputまたは[]を使用します。
val map = mutableMapOf("a" to 1, "b" to 2)
map["c"] = 3
map["a"] = 10      // update
map.remove("b")
println(map)  // {a=10, c=3}

addAll、removeAll、retainAll

可変コレクションに対する一括操作です。
val nums = mutableListOf(1, 2, 3)
nums.addAll(listOf(4, 5, 6))
println(nums)  // [1, 2, 3, 4, 5, 6]
nums.removeAll { it % 2 == 0 }
println(nums)  // [1, 3, 5]

clearとreplaceAll

clearはすべての要素を削除します。replaceAllは各要素をその場で変換します。
val list = mutableListOf(1, 2, 3, 4)
list.replaceAll { it * 2 }
println(list)  // [2, 4, 6, 8]
list.clear()
println(list)  // []

buildListによるリストの構築

buildListは可変ビルダーを使用して読み取り専用リストを作成します。簡潔でわかりやすい方法です。
val squares = buildList {
    for (i in 1..5) add(i * i)
}
println(squares)  // [1, 4, 9, 16, 25]

buildMapとbuildSet

同様に、buildMapとbuildSetでは可変操作を使ってマップやセットを構築し、読み取り専用の結果を返します。
val map = buildMap {
    put("en", "English")
    put("de", "German")
    put("tr", "Turkish")
}
println(map["tr"])  // Turkish

ArrayList、LinkedList:型の明示

特定の性能特性が必要な場合は、ArrayListまたはArrayDequeを直接使用してください。
val arrayList = ArrayList<String>()
arrayList.add("x")
val deque = ArrayDeque<Int>()
deque.addFirst(1)
deque.addLast(2)

Mapの蓄積に使うgetOrPut

getOrPutは既存の値を返すか、デフォルト値を挿入してそれを返します。グループ化に便利です。
val groups = mutableMapOf<String, MutableList<Int>>()
for (i in 1..6) {
    val key = if (i % 2 == 0) "even" else "odd"
    groups.getOrPut(key) { mutableListOf() }.add(i)
}
println(groups)

可変リストの並べ替え

sortとsortWithは可変リストをその場で並べ替えます。
val nums = mutableListOf(3, 1, 4, 1, 5, 9)
nums.sort()
println(nums)  // [1, 1, 3, 4, 5, 9]
nums.sortDescending()
println(nums)  // [9, 5, 4, 3, 1, 1]

確認問題

ラムダ内の可変ビルダーを使って読み取り専用のListを作成する関数はどれですか。

まとめ

可変コレクションにはmutableListOf/SetOf/MapOfを使用します。変更操作にはadd、remove、put、clear、replaceAllを使用します。可変コレクションの構築から変更不可の結果を簡潔に作成するには、buildList/Map/Setを使用します。次は、要素への安全なアクセスです。

よくある質問

「mutableListOf、mutableMapOf:可変コレクションの構築」レッスンは無料ですか?

はい。「mutableListOf、mutableMapOf:可変コレクションの構築」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Kotlin Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Kotlin Academyコースには全4レッスンが含まれています。

「mutableListOf、mutableMapOf:可変コレクションの構築」で何を学びますか?

可変コレクションを作成し、安全に変更します。 ブラウザで直接実行するハンズオンコードでKotlin Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Kotlin Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのKotlin Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「mutableListOf、mutableMapOf:可変コレクションの構築」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このKotlin Academyレッスンでコードを書いて実行できますか?

はい。すべてのKotlin Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. listOf、setOf、mapOf:読み取り専用コレクション
  2. mutableListOf、mutableMapOf:可変コレクションの構築
  3. 要素へのアクセス:get、first、last、getOrNull
  4. 標準ライブラリでコレクションを反復・変換する
← Kotlin Academyに戻る