一、前言
Kotlin里面的集合式api和Java类似,但也有区别,Kotlin里面加入了可变和不可变的特性,例如可变集合MutableList,不可变的则是List,这部分的功能主要是和语言的特性相关联的,从Kotlin对于变量的定义中就可以看出来。
二、filter、map、flatMap、Sequence
filter
用来筛选集合中的元素
//创建一个集合将字符串h1找出来 //下面就是采用filter的用法 //括号里面为筛选条件 //最后采用一个foreach打印出来 //这里的foreach是方法引用,简化版的lambda,相当于println(it) val list = listOf("h1","h2","h3") .filter { it == "h2" } .forEach (::println) //结果为 //h1
map
接口是一个transfrom方法,我们可以在这里将集合中的元素进行格式化操作,比如打印hashcode
val list = listOf("h1","h2","h3") .filter { it == "h2" } .map { it.hashCode() } .forEach(::println)
flatMap
与map主要的区别就是,这个flatmap中接受的参数必须是list类型的,而map只需要单个元素即可
val list = listOf("Hello","Wresource") .flatMap { listOf(it.uppercase())}
Sequence
序列,这个kotlin独有的,与集合的操作类似,但底层实现方式更优,采用延迟化的方式执行,集合转化成它只需要
val a = listOf("Hello","Wresource") //添加此方法即可 .asSequence() .flatMap { listOf(it.uppercase())}
加入我的技术社区,每天一起学习Kotlin。
点击下方的logo即可加入kotlin开发者社区:
<img src="https://ucc.alicdn.com/images/user-upload-01/074943eea593491db21ac32d9a3da6e3.jpg" >