创建集合

Kotlin和大多数编程语言一样,有三种集合:List,Set,Map,但Kotlin的集合区分可变集合和不可变集合。

创建可变集合:

var arrayList = arrayListOf(1.2f, 2f)
var list = mutableListOf("a", "b")
list.add("c")
var set = mutableSetOf(1, 2, 2, 3)
set.add(1)
println(set) //[1, 2, 3]
var map = mutableMapOf<String, String>(
    "a" to "b",
    "c" to "d"
)

创建不可变集合:

//不可变集合,没有add,remove,set之类的方法,不能修改元素
var list2 = listOf("a") 
list2[0]
var set2 = setOf("b")
var map2 = mapOf("a" to "b")

高阶函数

Kotlin的集合提供了非常多强大的扩展函数,允许我们对集合数据进行各种增删改查,过滤和筛选。

  1. 遍历

    list.forEach { println(it) }
    //带索引遍历
    list.forEachIndexed { index, s -> println("$index - $s") }
    
  2. 查询

    list.find { it.contentEquals("a") } //找到第一个包含a的元素
    list.findLast { it.contentEquals("a") } //找到最后一个包含a的元素
    list.first { it.startsWith("a") } //找出第一个满足条件的,找不到抛出异常
    list.last { it.startsWith("a") } //找出最后一个满足条件的,找不到抛出异常
    
  3. 删除

    list.removeAll { it.startsWith("a") } //删除所有以a开头的元素	
    
  4. 过滤

    list.filter { it.contains("a") } //获取所有满足条件的元素
    list.filterNot { it.contains("a") } //获取所有不满足条件的元素
    
  5. reduce操作

    list.reduce { acc, s ->  acc + s }
    //反向reduce
    list.reduceRight { s, acc ->  acc + s}
    
  6. map操作

    list.map { println(it.toUpperCase()) }
    //flatMap
    list.flatMap { it.toUpperCase().toList() }
    
  7. 其他

    //打乱排序
    list.shuffle()
    //替换
    list.replaceAll { if(it=="a") "A" else it }
    list.any { it.contentEquals("a") } //只要有一个元素符合条件就返回true
    list.all { it.contentEquals("a") } //是否所有元素都符合条件
    

更多的高阶函数等待你去尝试,篇幅有限,我只能写到这了。

更新时间: 4/30/2019, 9:52:46 PM