(二十四)Kotlin简单易学 基础语法-序列

(二十四)Kotlin简单易学 基础语法-序列

序列

➢ List,Set,Map集合类型,这几个类型统称为及早集合,这些集合的任何一个实例在创建后,它要包含的元素都会被加入并允许你访问。对应及早集合,Kotlin还有另外一类集合:惰性集合类似于类的惰性初始化,惰性集合类型的性能表现优异,尤其是用于包含大量元素的集合时,因为集合元素是按需产生的。
➢Kotlin有个内置惰性集合类型叫序列,序列不会索引排序它的内容,也不记录元素数目,事实上,在使用一个序列时,序列里的值可能有无限多,因为某个数据源能产生无限多个元素。

generateSequence 函数

➢针对某个序列,你可能会定义一个只要序列有新值产生就被调用一下的函数,这样的函数就迭代函数,要定义一个序列和它的迭代器,你可以使用Kotlin的序列构造函数generateSequence ,generateSequence 函数接收一个初始种子值作为序列的起步值,在用generateSequence 定义的序列上调用一个函数时,generateSequence 函数会调用你指定的迭代器函数,决定下一个产生的值。
➢惰性集合究竟有什么用呢?为什么要用它而不是list集合呢?假设你想产生头1000个素数。

fun main() {
    //1000
    println(generateSequence(2) { value ->
        value + 1
    }.filter {
        it.isPrinme()
    }.take(1000).toList().size)
}

你可能感兴趣的:(Kotlin,kotlin,android,开发语言)