Kotlin编程语言(八)——Array、List和Map
数组:固定大小,通过索引访问,适用于已知大小的数据。列表:动态大小,可以通过索引访问,适用于大小不确定的数据。不可变列表:一旦创建,不能修改。可变列表:可以添加、删除和修改元素。映射:键值对数据结构,键是唯一的,适用于需要快速查找的数据。不可变映射:一旦创建,不能修改。可变映射:可以添加、删除和修改元素。通过这些基本概念和操作,你可以在 Kotlin 中灵活地使用数组、列表和映射来处理各种数据结构
·
Kotlin编程语言(八)——Array、List和Map
在 Kotlin 中,Array、List 和 Map 是三种常用的数据结构,每种数据结构都有其独特的特性和使用场景。下面详细介绍了这些数据结构及其相关操作。
1. 数组(Array)
数组是一种固定大小的线性数据结构,其中的元素具有相同的类型,并且可以通过索引访问。
定义和初始化
- 使用
arrayOf
函数:
val array1 = arrayOf(1, 2, 3, 4, 5)
- 使用
Array
构造函数:
val array2 = Array(5) { i -> i * 2 } // 创建一个包含 5 个元素的数组,每个元素的值为索引的两倍
- 类型指定:
val array3: Array<Int> = arrayOf(1, 2, 3, 4, 5)
访问和修改
- 访问元素:
val firstElement = array1[0]
- 修改元素:
array1[0] = 10
常用方法
- 遍历数组:
for (element in array1) {
println(element)
}
-
获取数组长度:
val length = array1.size
-
转换为列表:
val list = array1.toList()
2. 列表(List)
列表是一种动态大小的线性数据结构,可以包含不同类型的元素,并且可以通过索引访问。
定义和初始化
- 不可变列表(
List
):
val list1 = listOf(1, 2, 3, 4, 5)
- 可变列表(
MutableList
):
val mutableList1 = mutableListOf(1, 2, 3, 4, 5)
- 类型指定:
val list2: List<Int> = listOf(1, 2, 3, 4, 5)
val mutableList2: MutableList<Int> = mutableListOf(1, 2, 3, 4, 5)
访问和修改
- 访问元素:
val firstElement = list1[0]
- 修改元素(仅限可变列表):
mutableList1[0] = 10
- 添加元素(仅限可变列表):
mutableList1.add(6)
- 删除元素(仅限可变列表):
mutableList1.remove(1)
常用方法
- 遍历列表:
for (element in list1) {
println(element)
}
- 获取列表长度:
val length = list1.size
- 转换为数组:
val array = list1.toTypedArray()
3. 映射(Map)
映射是一种键值对(key-value pair)的数据结构,其中每个键都是唯一的。
定义和初始化
- 不可变映射(
Map
):
val map1 = mapOf("one" to 1, "two" to 2, "three" to 3)
- 可变映射(
MutableMap
):
val mutableMap1 = mutableMapOf("one" to 1, "two" to 2, "three" to 3)
- 类型指定:
val map2: Map<String, Int> = mapOf("one" to 1, "two" to 2, "three" to 3)
val mutableMap2: MutableMap<String, Int> = mutableMapOf("one" to 1, "two" to 2, "three" to 3)
访问和修改
- 访问元素:
val value = map1["one"]
- 修改元素(仅限可变映射):
mutableMap1["one"] = 10
- 添加元素(仅限可变映射):
mutableMap1["four"] = 4
- 删除元素(仅限可变映射):
mutableMap1.remove("one")
常用方法
- 遍历映射:
for ((key, value) in map1) {
println("$key -> $value")
}
- 获取映射大小:
val size = map1.size
- 获取所有键:
val keys = map1.keys
- 获取所有值:
val values = map1.values
4. 数组、列表和映射的转换
- 数组转列表:
val listFromArray = array1.toList()
- 列表转数组:
val arrayFromList = list1.toTypedArray()
- 列表转映射:
val mapFromList = list1.mapIndexed { index, value -> index.toString() to value }.toMap()
5. 特殊类型的数组
Kotlin 还提供了针对基本类型的优化数组类型,如 IntArray
、DoubleArray
等,这些数组类型在性能上优于 Array<T>
。
定义和初始化
IntArray
:
val intArray = intArrayOf(1, 2, 3, 4, 5)
DoubleArray
:
val doubleArray = doubleArrayOf(1.0, 2.0, 3.0, 4.0, 5.0)
访问和修改
- 访问元素:
val firstElement = intArray[0]
- 修改元素:
intArray[0] = 10
总结
- 数组:固定大小,通过索引访问,适用于已知大小的数据。
- 列表:动态大小,可以通过索引访问,适用于大小不确定的数据。
- 不可变列表:一旦创建,不能修改。
- 可变列表:可以添加、删除和修改元素。
- 映射:键值对数据结构,键是唯一的,适用于需要快速查找的数据。
- 不可变映射:一旦创建,不能修改。
- 可变映射:可以添加、删除和修改元素。
更多推荐
所有评论(0)