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 }
相关推荐
lsx20240611 分钟前
传输对象模式
开发语言
ch.ju13 分钟前
Java Programming Chapter 4——Member method
java·开发语言
Honker_yhw15 分钟前
大数据管理与应用系列丛书《数据挖掘》(吕欣等著)读书笔记-LASSO回归
数据挖掘·回归·kotlin
笨蛋不要掉眼泪16 分钟前
Java并发编程:ReentrantLock与AQS原理剖析
java·开发语言·并发
念何架构之路22 分钟前
Go依赖管理
开发语言·后端·golang
liudanzhengxi23 分钟前
CUDA转OpenCL:跨平台内核迁移实战
开发语言
吃好睡好便好26 分钟前
用if…elseif…end语句输出成绩等级
开发语言·前端·javascript·数据库·学习·matlab·信息可视化
努力努力再努力wz27 分钟前
【Redis入门系列】:Redis 内部编码机制与 String 深度解析:SDS 底层实现、三种编码与核心命令详解
c语言·开发语言·数据结构·数据库·c++·redis·缓存
必胜刻28 分钟前
Go 调用Coze工作流实现 AI 游戏生成
开发语言·ai·golang·gin
夕除29 分钟前
spring boot 12
java·开发语言·python