0Pricing
Android Academy · 课时

列表与可变列表

存储有序数据。

列表与可变列表 是 CoddyKit 上的免费 Android Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Android Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Android Academy 课程共包含 4 节课。

什么是列表

列表是按顺序排列的项目集合。每个项目都有一个位置,称为索引,索引从0开始。

在 Kotlin 中,列表分为两种:无法修改的只读列表,以及可以添加或删除项目的可变列表。

列表在 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()将另一个集合中的所有项目追加到可变列表中。

合并结果时,这一操作非常方便,例如合并两页数据。

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

快速检查

测试您对 Kotlin 列表的理解。

回顾

您了解到,列表是有顺序的,并且索引从 0 开始。listOf()创建只读列表,mutableListOf()创建可修改的列表。

您可以添加、删除、更新项目,遍历列表并检查其内容。除非确实需要修改,否则请优先使用只读列表。

常见问题解答

「列表与可变列表」课时是免费的吗?

是的 — 「列表与可变列表」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Android Academy 课程的其余内容,请升级到 CoddyKit PRO。 Android Academy 课程共包含 4 节课。

「列表与可变列表」这节课中我会学到什么?

存储有序数据。 你通过在浏览器中直接运行的动手代码来练习 Android Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Android Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Android Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「列表与可变列表」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Android Academy 课中编写并运行代码吗?

能。每节 Android Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 列表与可变列表
  2. 映射与集合
  3. map、filter、forEach
  4. Lambda 与高阶函数
← 返回 Android Academy