kotlin: sequence的四种创建方式
一,代码:
//处理按钮点击事件
binding.button1.setOnClickListener {
//从现有集合转换
val list = listOf(1, 2, 3)
val seq1 = list.asSequence()
println("seq1")
seq1.forEach {
print(it)
print(",")
}
print("\n")
//使用 sequenceOf 函数
val seq2 = sequenceOf(1, 2, 3, 4)
println("seq2")
seq2.forEach {
print(it)
print(",")
}
print("\n")
//使用 sequence 构建器
val seq3 = sequence {
yield(1) // 生成单个元素
yieldAll(listOf(2, 3)) // 生成多个元素
yieldAll(generateSequence(4) { it + 1 }.take(4)) // 生成无限序列(需配合 take 使用)
}
println("seq3")
seq3.forEach {
print(it)
print(",")
}
print("\n")
// 使用生成器创建
val seq4 = generateSequence(1) { it + 1 } // 无限序列
.take(10)
println("seq4")
seq4.forEach {
print(it)
print(",")
}
print("\n")
}
二,运行结果: