列表与可变列表
存储有序数据。
列表与可变列表 是 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 反馈 — 无需本地设置。