【笔记】Kotlin的数组
前言
Kotlin的数组学习笔记
创建数组
创建空数组
1 | var arr: Array<数据类型> = arrayOf() |
创建只读空数组
1 | var arr: Array<数据类型> = emptyArray<数据类型>() |
创建有长度的数组
- 每个元素的默认值都为null
<num>:数组长度
1 | var arr: Array<数据类型?> = arrayOfNulls(<num>) |
创建数组并添加元素
1 | var arr: Array<数据类型> = arrayOf(值, 值) |
1 | var arr: Array<数据类型> = Array(<num>) { |
通过基本类型数组创建数组
1 | var arr: IntArray = intArrayOf() |
| 数据类型 | 备注 |
|---|---|
| ByteArray | 字节数组 |
| ShortArray | 短整型数组 |
| IntArray | 整型数组 |
| LongArray | 长整型数组 |
| FloatArray | 浮点数数组 |
| DoubleArray | 浮点数数组 |
| CharArray | 字符数组 |
| BooleanArray | 布尔数组 |
操作符
获取元素
1 | var value = arr[<num>] |
1 | var 变量名 = arr[<num_1>][<num_2>] |
修改元素
1 | arr[<num>] = 值 |
1 | arr[<num_1>][<num_2>] = 值 |
合并数组
1 | var arr1 = arrayOf() |
实例属性
获取数组长度
1 | arr.size |
实例方法
拼接数组为字符串
- 默认使用
,作为分隔符
1 | arr.joinToString() |
- 定义分隔符
1 | arr.joinToString("分隔符") |
- 定义分隔符,前缀,后缀
1 | arr.joinToString(separator = "分隔符", prefix = "前缀", postfix = "后缀") |
- 定义将前
<num>个元素拼接为字符串,超出部分显示为...
1 | arr.joinToString(limit = <num>, truncated = "...") |
- 遍历所有元素,自定义每次拼接的内容
1 | arr.joinToString { |
判断数组中元素是否全部相同
1 | var arr1 = arrayOf() |
深对比
- 针对于多维数组的深对比
1 | var arr1 = arrayOf() |
拷贝数组
1 | var arr = arrayOf() |
拷贝指定长度
- 从头开始拷贝指定长度的数组
1 | var arr = arrayOf() |
指定拷贝范围
- 拷贝[
, )范围的元素
1 | var arr = arrayOf() |
1 | var arr = arrayOf() |
判断数组是否包含指定元素
1 | var arr = arrayOf() |
1 | var arr = arrayOf() |
1 | var arr = arrayOf() |
查找指定元素在数组中的下标
通过遍历
1 | var index = arr.indexOf(值) |
通过二分查找法
1 | var index = arr.binarySearch(值) |
判断是否为空数组
- 判断数组长度是否为0
1 | var result = arr.any() |
获取第一个元素
1 | var result = arr.first() |
获取最后一个元素
1 | var result = arr.last() |
排序
升序
1 | arr.sort() |
降序
1 | arr.sortDescending() |
翻转数组元素顺序
1 | var result = arr.reversedArray() |
打乱数组元素顺序
1 | arr.shuffle() |
数组转换为List集合
1 | var list = arr.toMutableList() |
遍历数组
1 | for (index in 0..<arr.size) { |
1 | for (index in arr.indices) { |
1 | for (item in arr) { |
1 | for ((index, item) in arr.withIndex()) { |
1 | arr.foreach { |
1 | arr.foreach { index, item |
自定义排序
- 重写compareTo方法,返回值小于等于零顺序不变,返回值大于零顺序交换
1 | class 类名 { |
基本类型数组的实例方法
数值型数据的方法
求和
1 | var result = arr.sum() |
求平均数
1 | var result = arr.average() |
求最大值
1 | var result = arr.max() |
求最小值
1 | var result = arr.min() |