kotlin的列表

在 kotlin中,列表是一种常见的数据结构,用于存储有序的元素集合。 kotlin的标准库提供了 List 接口及其实现类 ArrayList、LinkedList 等,以及一些扩展函数来操作和处理列表。

1.创建列表

复制代码
// 创建一个可变列表
val mutableList = mutableListOf(1, 2, 3)

// 创建一个不可变列表
val immutableList = listOf("apple", "banana", "orange")

2.访问列表元素

复制代码
val fruits = listOf("apple", "banana", "orange")
val firstFruit = fruits[0]
val lastFruit = fruits.last()

3.列表操作

复制代码
val numbers = mutableListOf(1, 2, 3)
numbers.add(4) // 添加元素
numbers.remove(2) // 移除元素
numbers.addAll(listOf(5, 6)) // 添加多个元素
numbers.removeAt(1) // 移除索引为 1 的元素
numbers.clear() // 清空列表

4.列表遍历

复制代码
val fruits = listOf("apple", "banana", "orange")
for (fruit in fruits) {
    println(fruit)
}

fruits.forEach { fruit ->
    println(fruit)
}

5.列表过滤和映射

复制代码
val numbers = listOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 }
val doubledNumbers = numbers.map { it * 2 }

6.列表排序

复制代码
val numbers = mutableListOf(5, 3, 1, 4, 2)
numbers.sort() // 升序排序
numbers.sortDescending() // 降序排序

7.列表查询

复制代码
val fruits = listOf("apple", "banana", "orange")
val containsApple = fruits.contains("apple")
val indexOfBanana = fruits.indexOf("banana")

8.列表转换为字符串

复制代码
val fruits = listOf("apple", "banana", "orange")
val str = fruits.joinToString(", ")

MutableList 接口

MutableList 是 List 接口的子接口,它提供了修改列表内容的方法,如 add、remove 等。

复制代码
val mutableList = mutableListOf(1, 2, 3)
mutableList.add(4)
mutableList.removeAt(1)

不可变列表与可变列表:

List 和 MutableList 分别表示不可变列表和可变列表。不可变列表的内容不能更改,而可变列表可以添加、删除和修改元素。

复制代码
val immutableList = listOf(1, 2, 3)
val mutableList = mutableListOf(4, 5, 6)

不可变列表确保其元素在创建后不能被修改,意味着你不能通过索引直接修改元素的值:

复制代码
val immutableList = listOf(1, 2, 3)
// 下面的代码会导致编译错误
immutableList[0] = 10

创建空列表:

复制代码
val emptyList = emptyList<Int>()
val emptyMutableList = mutableListOf<Int>()

9.列表与数组之间的转换

复制代码
val array = arrayOf(1, 2, 3)
val list = array.toList()

val list = listOf(4, 5, 6)
val array = list.toTypedArray()

列表的常见操作时间复杂度:

获取元素:O(1)

添加元素:可变列表 O(1),不可变列表 O(n)

删除元素:可变列表 O(n),不可变列表 O(n)

修改元素:可变列表 O(1),不可变列表 O(n)

搜索元素:O(n)

扩展函数:

标准库提供了许多扩展函数来处理列表,如 filter、map、reduce、fold 等。这些函数让处理列表变得更加方便。

复制代码
val numbers = listOf(1, 2, 3, 4, 5)
val evenNumbers = numbers.filter { it % 2 == 0 }
val sum = numbers.reduce { acc, value -> acc + value }
相关推荐
Kapaseker15 小时前
实战 Compose 中的 IntrinsicSize
android·kotlin
A0微声z3 天前
Kotlin Multiplatform (KMP) 中使用 Protobuf
kotlin
alexhilton3 天前
使用FunctionGemma进行设备端函数调用
android·kotlin·android jetpack
lhDream3 天前
Kotlin 开发者必看!JetBrains 开源 LLM 框架 Koog 快速上手指南(含示例)
kotlin
RdoZam3 天前
Android-封装基类Activity\Fragment,从0到1记录
android·kotlin
Kapaseker4 天前
研究表明,开发者对Kotlin集合的了解不到 20%
android·kotlin
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
feifeigo1234 天前
matlab画图工具
开发语言·matlab
dustcell.4 天前
haproxy七层代理
java·开发语言·前端
norlan_jame4 天前
C-PHY与D-PHY差异
c语言·开发语言