kotlin集合操作符——总数操作符

目录

any

all

count

fold

foldRight

forEach

forEachIndexed

max

maxBy

min

minBy

none

reduce

reduceRight

sumBy


关于集合的操作符,直接引用书上的内容,基本上总结的很好了。

any

如果至少有一个元素符合给出的判断条件,则返回true。

val list = listOf(1, 2, 3, 4, 5, 6)
assertTrue(list.any { it % 2 == 0 })
assertFalse(list.any { it > 10 })

all

如果全部的元素符合给出的判断条件,则返回true。

assertTrue(list.all { it < 10 })
assertFalse(list.all { it % 2 == 0 })

count

返回符合给出判断条件的元素总数。

assertEquals(3, list.count { it % 2 == 0 })

fold

在一个初始值的基础上从第一项到最后一项通过一个函数累计所有的元素。

assertEquals(25, list.fold(4) { total, next -> total + next })

foldRight

fold一样,但是顺序是从最后一项到第一项。

assertEquals(25, list.foldRight(4) { total, next -> total + next })

forEach

遍历所有元素,并执行给定的操作。

list.forEach { println(it) }

forEachIndexed

forEach,但是我们同时可以得到元素的index。

list.forEachIndexed { index, value
		-> println("position $index contains a $value") }

max

返回最大的一项,如果没有则返回null。

assertEquals(6, list.max())

maxBy

根据给定的函数返回最大的一项,如果没有则返回null。

// The element whose negative is greater
assertEquals(1, list.maxBy { -it })

min

返回最小的一项,如果没有则返回null。

assertEquals(1, list.min())

minBy

根据给定的函数返回最小的一项,如果没有则返回null。

// The element whose negative is smaller
assertEquals(6, list.minBy { -it })

none

如果没有任何元素与给定的函数匹配,则返回true。

// No elements are divisible by 7
assertTrue(list.none { it % 7 == 0 })

reduce

fold一样,但是没有一个初始值。通过一个函数从第一项到最后一项进行累计。

assertEquals(21, list.reduce { total, next -> total + next })

reduceRight

reduce一样,但是顺序是从最后一项到第一项。

assertEquals(21, list.reduceRight { total, next -> total + next })

sumBy

返回所有每一项通过函数转换之后的数据的总和。

assertEquals(3, list.sumBy { it % 2 })

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BennuCTech

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值