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 }
相关推荐
FL16238631295 小时前
[C#][winform]基于yolov8的水表读数检测与识别系统C#源码+onnx模型+评估指标曲线+精美GUI界面
开发语言·yolo·c#
cnxy1888 小时前
围棋对弈Python程序开发完整指南:步骤1 - 棋盘基础框架搭建
开发语言·python
程序员-周李斌9 小时前
Java 死锁
java·开发语言·后端
JasmineWr10 小时前
CompletableFuture相关问题
java·开发语言
零雲10 小时前
java面试:知道java的反射机制吗
java·开发语言·面试
Jeremy爱编码10 小时前
实现 Trie (前缀树)
开发语言·c#
laocooon52385788610 小时前
插入法排序 python
开发语言·python·算法
你的冰西瓜11 小时前
C++中的list容器详解
开发语言·c++·stl·list
就不掉头发11 小时前
I/O复用
运维·服务器·c语言·开发语言
梦里小白龙11 小时前
JAVA 策略模式+工厂模式
java·开发语言·策略模式