Kotlin高级语法 — 集合常用操作符汇总

Kotlin中集合相关的操作符分为下述六类:
总数操作符过滤操作符映射操作符顺序操作符生产操作符元素操作符

1、总数操作符

操作符 作用
any() 判断是不是一个集合,若是,则在判断集合是否为空,若为空则返回false,反之返回true,若不是集合,则返回hasNext
any{...} 判断集合中是否存在满足条件的元素。若存在则返回true,反之返回false
all{...} 判断集合中的所有元素是否都满足条件。若是则返回true,反之则返回false
none() 如果没有任何元素与指定的函数条件匹配,则返回true。
none{...} 如果没有任何元素与指定的函数条件匹配,则返回true。
max() 获取集合中最大的元素,若为空元素集合,则返回null
maxBy{...} 获取方法处理后返回结果最大值对应那个元素的初始值,如果没有则返回null
min() 获取集合中最小的元素,若为空元素集合,则返回null
minBy{...} 获取方法处理后返回结果最小值对应那个元素的初始值,如果没有则返回null
sum() 计算出集合元素累加的结果。
sumBy{...} 根据元素运算操作后的结果,然后根据这个结果计算出累加的值。
sumByDouble{...} sumBy{}相似,不过sumBy{}是操作Int类型数据,而sumByDouble{}操作的是Double类型数据
average() 获取平均数
reduce{...} 从集合中的第一项到最后一项的累计操作。
reduceIndexed{...} reduce{}作用相同,只是其可以操作元素的下标(index)
reduceRight{...} 从集合中的最后一项到第一项的累计操作。
reduceRightIndexed{...} reduceRight{}作用相同,只是其可以操作元素的下标(index)
fold{...} reduce{}类似,但是fold{}有一个初始值
foldIndexed{...} reduceIndexed{}类似,但是foldIndexed{}有一个初始值
foldRight{...} reduceRight{}类似,但是foldRight{}有一个初始值
foldRightIndexed{...} reduceRightIndexed{}类似,但是foldRightIndexed{}有一个初始值

示例:

        val list1 = listOf(1, 2, 3, 4, 5)

        println("  ------   any -------")
        println(list1.any())
        println(list1.any {
    it > 10 })
        /*
          ------   any -------
        true
        false
         */

        println("  ------   all -------")
        println(list1.all {
    it > 2 })
        /*
          ------   all -------
         false
         */

        println("  ------   none -------")
        println(list1.none())
        println(list1.none {
    it > 2 })
        /*
          ------   none -------
        false
        false
         */

        println("  ------   max -------")
        println(list1.max())
        println(list1.maxBy {
    it + 2 })
        /*
          ------   max -------
        5
        5
         */

        println("  ------   min -------")
        println(list1.min())        // 返回集合中最小的元素
        println(list1.minBy {
    it + 2 })
        /*
          ------   min -------
        1
        1
         */

        println("  ------   sum -------")
        println(list1.sum())
        println(list1.sumBy {
    it + 2 })
        println(list1.sumByDouble {
    it.toDouble() })
        /*
          ------   sum -------
        15
        25
        15.0
         */

        println(" ------  average -----")
        println(list1.average())
        /*
         ------  average -----
        3.0
         */

        println("  ------   reduce  -------")
        println(list1.reduce {
    result, next -> result + next })
        println(list1.reduceIndexed {
    index, result, next ->
            index + result + next
        })
        println(list1.reduceRight {
    result, next -> result + next })
        println(list1.reduceRightIndexed {
    index, result, next ->
            index + result + next
        })
        /*
          ------   reduce  -------
        15
        25
        15
        21
         */      
           
        println("  ------   fold  -------")
        println(list1.fold(3) {
    result
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值