Android Academy · レッスン

Kotlinコレクション

List、Set、Mapを扱います。filter、map、sortedBy、forEach、find、any、allなどの関数型演算子を使い、操作を連結して簡潔なデータ変換を行います。

レッスン 1/611 ステップ

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

コレクションの概要

Kotlinの標準ライブラリには、主に3種類のコレクションがあります。

  • List — 要素の順序付きシーケンス(重複可)
  • Set — 一意な要素の集合(特定の順序なし)
  • Map — キーと値のペア(キーは一意)

各型には、immutable(読み取り専用)版と mutable(変更可能)版があります。

List:listOf と mutableListOf

ファクトリ関数を使ってリストを作成します。

fun main() {
    // Immutable — cannot add/remove items
    val fruits = listOf("Apple", "Banana", "Cherry")
    println(fruits[0])       // Apple
    println(fruits.size)     // 3

    // Mutable — can modify
    val scores = mutableListOf(10, 20, 30)
    scores.add(40)
    scores.removeAt(0)       // remove index 0
    println(scores)          // [20, 30, 40]
}

Map:キーと値のペア

mapOf と mutableMapOf を使ってマップを作成します。キーを指定して値にアクセスできます。

fun main() {
    val capitals = mapOf(
        "Turkey" to "Ankara",
        "Germany" to "Berlin",
        "Japan" to "Tokyo"
    )

    println(capitals["Turkey"])      // Ankara
    println(capitals["France"])      // null (not found)
    println(capitals.getOrDefault("France", "Unknown")) // Unknown

    // Iterate
    for ((country, city) in capitals) {
        println("$country -> $city")
    }
}

filter — 要素を選択する

filter は、条件に一致する要素だけを含む新しいリストを返します。

fun main() {
    val numbers = listOf(1, 2, 3, 4, 5, 6, 7, 8)

    val evens = numbers.filter { it % 2 == 0 }
    println(evens)   // [2, 4, 6, 8]

    val names = listOf("Alice", "Bob", "Anna", "Charlie")
    val aNames = names.filter { it.startsWith("A") }
    println(aNames)  // [Alice, Anna]
}

map — 要素を変換する

map はすべての要素を変換し、新しいリストを返します。

fun main() {
    val prices = listOf(10.0, 20.0, 30.0)

    // Apply 10% tax
    val withTax = prices.map { it * 1.1 }
    println(withTax)  // [11.0, 22.0, 33.0]

    val names = listOf("alice", "bob", "carol")
    val upper = names.map { it.uppercase() }
    println(upper)    // [ALICE, BOB, CAROL]
}

sortedBy と sortedByDescending

プロパティを基準にリストを並べ替えます。

data class Student(val name: String, val grade: Int)

fun main() {
    val students = listOf(
        Student("Alice", 88),
        Student("Bob", 95),
        Student("Carol", 72)
    )

    val byGrade = students.sortedByDescending { it.grade }
    for (s in byGrade) println("${s.name}: ${s.grade}")
    // Bob: 95
    // Alice: 88
    // Carol: 72
}

forEach と find

コレクションで使える、さらに2つの便利な関数です。

  • forEach — 結果を作成せずに反復処理する
  • find — 条件に一致する最初の要素を返す。一致する要素がなければ null

操作のチェーン

複数の操作をチェーンして、簡潔にデータを変換します。

data class Product(val name: String, val price: Double, val inStock: Boolean)

fun main() {
    val products = listOf(
        Product("Laptop", 999.0, true),
        Product("Mouse", 29.0, false),
        Product("Keyboard", 79.0, true),
        Product("Monitor", 349.0, true)
    )

    // In-stock products under $500, sorted by price
    val result = products
        .filter { it.inStock && it.price < 500 }
        .sortedBy { it.price }
        .map { "${it.name}: ${it.price}" }

    result.forEach { println(it) }
}

any、all、count

結果をすばやく取得するための集約関数です。

  • any { condition } — 1つ以上の要素が一致する場合に true
  • all { condition } — すべての要素が一致する場合に true
  • count { condition } — 一致する要素の数
  • sumOf { it.price } — 数値プロパティの合計

クイックチェック

リストから条件を満たす要素だけを取得するには、どの関数を使いますか?

まとめ:Kotlinのコレクション

Kotlinでデータを効率的に扱えるようになりました。

  • listOf / mutableListOf、mapOf / mutableMapOf
  • filter — 条件に一致する要素を選択する
  • map — 要素を変換する
  • sortedBy / sortedByDescending
  • 操作をチェーンして、すっきり読みやすいデータ処理パイプラインを作る

次は、RecyclerViewを使ってリストを画面に表示します。

無料で開始

AI チューターと学ぶ Kotlin — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
36
レッスン
152

よくある質問

「Kotlinコレクション」レッスンは無料ですか?

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

「Kotlinコレクション」で何を学びますか?

List、Set、Mapを扱います。filter、map、sortedBy、forEach、find、any、allなどの関数型演算子を使い、操作を連結して簡潔なデータ変換を行います。 ブラウザで直接実行するハンズオンコードでAndroid Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「Kotlinコレクション」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. Kotlinコレクション
  2. RecyclerViewの基礎
  3. RecyclerViewのクリックイベント
  4. SharedPreferences
  5. DataStore Preferences
  6. AdaptersとDiffUtil
← Android Academyに戻る