0Pricing
Android Academy · レッスン

リストと可変リスト

順序付きデータを保存します。

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

リストとは

リストは、項目を順番に並べたコレクションです。各項目にはインデックスと呼ばれる位置があり、0から始まります。

Kotlinのリストには、変更できない読み取り専用リストと、項目を追加・削除できるミュータブルリストの2種類があります。

リストはAndroidアプリのいたるところで使われます。投稿のフィード、ボタンの行、検索結果などがその例です。

読み取り専用リストの作成

listOf()を使って読み取り専用リストを作成します。作成後に項目を追加・削除することはできません。

これは最も安全なデフォルトです。データが変わらない場合は、読み取り専用リストを優先してください。

fun main() {
    val fruits = listOf("apple", "banana", "cherry")
    println(fruits)
    println("Size: ${fruits.size}")
}

インデックスによる項目へのアクセス

角括弧とインデックスを使って項目を読み取ります。最初の項目のインデックスは0です。

リストの先頭と末尾には、first()とlast()も使用できます。

fun main() {
    val colors = listOf("red", "green", "blue")
    println(colors[0])
    println(colors.first())
    println(colors.last())
}

リストのループ処理

forループは、各項目を順番に処理します。すべての要素を処理する最も一般的な方法です。

ここでは、それぞれの名前を別々の行に出力しています。

fun main() {
    val names = listOf("Ada", "Linus", "Grace")
    for (name in names) {
        println("Hello, $name")
    }
}

ミュータブルリストの作成

内容を変更する必要がある場合は、mutableListOf()を使います。作成後に項目を追加・削除できます。

add()を使うと、末尾に項目を追加できます。

fun main() {
    val tasks = mutableListOf("wake up", "code")
    tasks.add("sleep")
    println(tasks)
}

項目の削除

remove()は特定の値を削除するときに、removeAt()はインデックスを指定して削除するときに使います。

どちらもミュータブルリストでのみ使用できます。読み取り専用リストで呼び出すとコンパイルエラーになります。

fun main() {
    val nums = mutableListOf(10, 20, 30, 40)
    nums.remove(20)
    nums.removeAt(0)
    println(nums)
}

項目の更新

ミュータブルリストでは、インデックスに新しい値を代入して既存の項目を置き換えられます。

インデックスはすでに存在している必要があります。存在しない場合は範囲外エラーになります。

fun main() {
    val scores = mutableListOf(5, 8, 3)
    scores[1] = 99
    println(scores)
}

内容の確認

contains()またはinキーワードを使って、リストに値が含まれているか確認します。

isEmpty()を使うと、リストに項目がないか確認できます。これらはどちらのリスト型でも使用できます。

fun main() {
    val pets = listOf("cat", "dog")
    println("cat" in pets)
    println(pets.contains("fish"))
    println(pets.isEmpty())
}

読み取り専用型とミュータブル型

List<T>型は読み取り専用です。MutableList<T>型には変更操作が追加されています。

よくあるパターンは、ミュータブル型でリストを構築した後、他のコードから変更されないように読み取り専用のListとして公開することです。

val safe: List<Int> = mutableListOf(1, 2, 3)
// safe.add(4) would NOT compile

サイズとインデックス

sizeプロパティは、リストに含まれる項目数を示します。

有効なインデックスは0からsize - 1までです。位置を順番に処理するにはindicesを使います。

fun main() {
    val items = listOf("a", "b", "c")
    for (i in items.indices) {
        println("$i -> ${items[i]}")
    }
}

複数の項目を一度に追加する

addAll()を使うと、別のコレクションのすべての項目をミュータブルリストの末尾に追加できます。

2ページ分のデータを結合するなど、結果を統合するときに便利です。

fun main() {
    val list = mutableListOf(1, 2)
    list.addAll(listOf(3, 4, 5))
    println(list)
    println("Total: ${list.size}")
}

理解度チェック

Kotlinのリストについての理解度を確認しましょう。

まとめ

リストは順序付けられており、インデックスは0から始まることを学びました。listOf()は読み取り専用リストを、mutableListOf()は変更可能なリストを作成します。

項目の追加、削除、更新、ループ処理、内容の確認ができます。本当に変更が必要な場合を除き、読み取り専用リストを優先してください。

よくある質問

「リストと可変リスト」レッスンは無料ですか?

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

「リストと可変リスト」で何を学びますか?

順序付きデータを保存します。 ブラウザで直接実行するハンズオンコードでAndroid Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

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

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

「リストと可変リスト」レッスンにはどのくらい時間がかかりますか?

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

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

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

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

  1. リストと可変リスト
  2. マップとセット
  3. map、filter、forEach
  4. ラムダと高階関数
← Android Academyに戻る