Kotlin学习5-集合

82 阅读2分钟

集合

1.List

1.1 List创建与元素获取

  • getOrElse是一个安全索引取值函数,它需要两个参数,第一个索引值,第二个是能提供默认值的lambda表达式,如果索引值不存在的话,可用来替代异常。

image.png

1.2 可变列表

  • mutableListOf函数,可变列表。且可以和不可变列表互相转换

image.png

  • 结果:

image.png

  • 互相转换

image.png

1.3 mutator函数

  • 能修改可变列表的函数有个统一的名字:mutator函数
  • 添加元素运算符与删除元素运算符
  • 基于lambda表达式指定的条件删除元素

image.png

  • 结果:

image.png

1.4 集合遍历

  • for in 遍历
  • forEach 遍历
  • forEachIndexed 遍历时要获取索引

image.png

  • 结果:

image.png

1.5 解构

  • 通过_符号过滤不想要的元素

image.png

  • 结果:
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

image.png 4.Map集合

4.1 Map的创建

  • to看上去像关键字,但事实上,它是个省略了点号和参数的特殊函数,to函数将它左边和右边的值转化成一对Pair。

image.png

4.2 读取Map的值

  • []取值运算符,读取键对应的值,如果键不存在就返回null
  • getValue,读取键对应的值,如果键不存在就抛出异常
  • getOrElse,读取键对应的值,或者使用lambda函数返回默认值
  • getOrDefault,读取键对应的值,或者返回默认值

image.png

  • 结果:

image.png

4.3 遍历

  • forEach遍历Map

image.png

  • 结果:

image.png

4.4可变Map

  • 通过mutableMapOf创建可变的Map
  • getOrPut键值不存在,就添加并返回结果,否则就返回已有键对应的值

image.png

image.png