当前位置: 首页 > article >正文

Kotlin学习之04

集合的变换操作

filter:保留满足条件的元素

map:集合中所有元素映射到其他元素构成新集合(就是转换每个元素,然后再组成一个新的结果)

flatMap:集合中所有元素映射到新集合并合并这些集合得到新集合(将一个输入的元素转换成一个集合,再将所有集合合并)

sequence

list.asSequence()
    .filter {
        println("filter: $it")
        it % 2 == 0
    }.map {
        println("map: $it")
        it * 2 + 1
    }.forEach {
        println("forEach: $it")
    }

加了asSequence后,所有元素会按顺序执行。

Sequence具体细节参照:Kotlin之Sequence - 简书

集合的聚合操作

sum:所有元素聚合

reduce:将所有元素依次按规则聚合,结果与元素类型一致

fold:给定初始化值,将元素按规则聚合,结果与初始化值类型一致

val list = listOf(1, 2, 3, 4)
val list2 = listOf(1, 2, 3, 4)
val list3 = listOf(1, 2, 3, 3, 4, 1, 2)
val strList = listOf("测试", "2", "3")

println("list.reduce = " + strList.reduce { acc, s -> acc + s })
println("list.fold = " + strList.fold(StringBuffer()) { acc, s ->
    acc.append(s)
})
groupBy:将集合内数据按条件分类
println("groupBy = " + list3.groupBy { it })
zip:将集合与另一个集合进行合并,长度按最短的集合长度算
println("zip = " + list.zip(strList))
println("zip = " + list.zip(list2) { a: Int, b: Int ->
    a * b
})


http://www.kler.cn/a/157416.html

相关文章:

  • Oracle 中间件 Webcenter Portal服务器环境搭建
  • 堆【Lecode_HOT100】
  • 网络安全的攻防战争
  • excel 使用vlook up找出两列中不同的内容
  • ansible的流程控制
  • React 19有哪些新特性?
  • 时间序列预测实战(二十三)进阶版LSTM多元和单元预测(课程设计毕业设计首选)
  • 【初阶解法-数据结构】包含min函数的栈(代码+图示)
  • 熬夜会秃头——beta冲刺Day7
  • 【开源】基于Vue.js的河南软件客服系统
  • 【Node-RED】http response收发实现
  • Shell数组函数:数组(一)
  • 如何制作教育培训小程序
  • 数字孪生是什么,是干什么用的?
  • 01 高等数学.武忠祥.0基础
  • 考虑光伏发电的配电网重构策略研究
  • 一次elasticsearch 查询瞬间超时案例分析
  • GEE:使用Roberts算子卷积核进行图像卷积操作
  • 【C语言】深入理解C语言中的数学运算和类型转换
  • Unity中C#使用协程控制Shader材质变化
  • unity3d模型中缺失animation
  • docker (镜像分层、阿里云镜像推送/拉去)-day02
  • Kontakt v7.7.2(音频采样器)
  • Golang实践录:读取xml配置文件
  • 基于mps的pytorch 多实例并行推理
  • C语言--每日选择题--Day35