集合
1.List
1.1 List创建与元素获取
- getOrElse是一个安全索引取值函数,它需要两个参数,第一个索引值,第二个是能提供默认值的lambda表达式,如果索引值不存在的话,可用来替代异常。
1.2 可变列表
- mutableListOf函数,可变列表。且可以和不可变列表互相转换
- 结果:
- 互相转换
1.3 mutator函数
- 能修改可变列表的函数有个统一的名字:mutator函数
- 添加元素运算符与删除元素运算符
- 基于lambda表达式指定的条件删除元素
- 结果:
1.4 集合遍历
- for in 遍历
- forEach 遍历
- forEachIndexed 遍历时要获取索引
- 结果:
1.5 解构
- 通过
_
符号过滤不想要的元素
- 结果:
jack
jacky
2.Set集合
2.1 Set创建与元素获取
- 通过setOf创建Set集合,使用elementAt函数读取集合中的元素
fun main() {
val set = setOf("jack", "jason", "jacky")
//没有set[2]这种写法
println(set.elementAt(2))
}
2.1 集合转换
- List转Set,去掉重复元素
- 快捷函数
.distinct()
fun main() {
val list = listOf("jack", "jacky", "jack")
.toSet()
.toList()
println(list)
println(listOf("jack", "jacky", "jack").distinct())
}
3.数组类型
- 提供了各种Array,虽然是引用类型,但可以编译成Java基本数据类型
inArrayOf
doubleArrayOf
longArrayOf
shortArrayOf
byteArrayOf
floatArrayOf
booleanArrayOf
arrayOf
4.Map集合
4.1 Map的创建
- to看上去像关键字,但事实上,它是个省略了点号和参数的特殊函数,to函数将它左边和右边的值转化成一对Pair。
4.2 读取Map的值
[]
取值运算符,读取键对应的值,如果键不存在就返回nullgetValue
,读取键对应的值,如果键不存在就抛出异常getOrElse
,读取键对应的值,或者使用lambda函数返回默认值getOrDefault
,读取键对应的值,或者返回默认值
- 结果:
4.3 遍历
- forEach遍历Map
- 结果:
4.4可变Map
- 通过mutableMapOf创建可变的Map
- getOrPut键值不存在,就添加并返回结果,否则就返回已有键对应的值